diff --git a/CHANGELOG.md b/CHANGELOG.md
index d01e1a0..265cc4a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -47,6 +47,7 @@
- | 添加时间轴上下滚动 | 2b81bbc
- | 添加项目排序 | a0b491b
- | 点击日历日期查询项目列表 | c458385
+ - | 细节调整,添加project-webview | 4d9050b
- | 绑定手机号 | 52e0352
- | 缓存修改 | 63e1f0d
- | 角色栏实现 | 94cd671
diff --git a/src/apis/plugin.js b/src/apis/plugin.js
deleted file mode 100644
index 0899cca..0000000
--- a/src/apis/plugin.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// 插件的地址是固定的
-const url = process.env.VUE_APP_API_URL;
-
-const install = (Vue, vm) => {
- vm.$u.api = { ...vm.$u.api } || {};
- // 获取插件信息
- vm.$u.api.getOtherPlugin = param => vm.$u.post(`${url}/pluginshop/plugin/query`, param);
- // 查询子任务
- vm.$u.api.findSonTask = param => vm.$u.post(`${uni.$t.domain}/task/findSonTask`, param);
- // 查询子项目
- vm.$u.api.findSonProject = param => vm.$u.post(`${uni.$t.domain}/project/findSonProject`, param);
-};
-
-export default { install };
diff --git a/src/apis/project.js b/src/apis/project.js
deleted file mode 100644
index 4832fa4..0000000
--- a/src/apis/project.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const install = (Vue, vm) => {
- vm.$u.api = { ...vm.$u.api } || {};
- //根据id获取项目信息
- vm.$u.api.findProjectById = param => vm.$u.post(`${uni.$t.domain}/project/findProjectById`, param);
-};
-
-export default { install };
diff --git a/src/apis/role.js b/src/apis/role.js
deleted file mode 100644
index 1e1d5be..0000000
--- a/src/apis/role.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const install = (Vue, vm) => {
- vm.$u.api = { ...vm.$u.api } || {};
- //根据时间基准点和角色查找定期任务
- vm.$u.api.findShowRole = param => vm.$u.post(`${uni.$t.domain}/role/show`, param);
-};
-
-export default { install };
diff --git a/src/apis/task.js b/src/apis/task.js
deleted file mode 100644
index a2eabf0..0000000
--- a/src/apis/task.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const install = (Vue, vm) => {
- vm.$u.api = { ...vm.$u.api } || {};
- vm.$u.api.getGlobal = param => vm.$u.post(`${uni.$t.domain}/task/global`, param);
- vm.$u.api.getPermanent = param => vm.$u.post(`${uni.$t.domain}/task/permanent`, param);
- //根据时间基准点和角色查找定期任务
- vm.$u.api.getRegularTask = param => vm.$u.post(`${uni.$t.domain}/task/regular`, param);
- //修改任务状态
- vm.$u.api.updateTaskType = param => vm.$u.post(`${uni.$t.domain}/task/type`, param);
-};
-
-export default { install };
diff --git a/src/common/styles/index.css b/src/common/styles/index.css
deleted file mode 100644
index df5a720..0000000
--- a/src/common/styles/index.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/* ./src/common/styles/index.css */
-
-/*! @import */
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
diff --git a/src/common/styles/tailwind.scss b/src/common/styles/tailwind.scss
new file mode 100644
index 0000000..bc2a75c
--- /dev/null
+++ b/src/common/styles/tailwind.scss
@@ -0,0 +1,4668 @@
+.fixed {
+ position: fixed;
+}
+
+.absolute {
+ position: absolute;
+}
+
+.relative {
+ position: relative;
+}
+
+.sticky {
+ position: sticky;
+}
+.col-auto {
+ grid-column: auto;
+}
+
+.col-span-1 {
+ grid-column: span 1 / span 1;
+}
+
+.col-span-2 {
+ grid-column: span 2 / span 2;
+}
+
+.col-span-3 {
+ grid-column: span 3 / span 3;
+}
+
+.col-span-4 {
+ grid-column: span 4 / span 4;
+}
+
+.col-span-5 {
+ grid-column: span 5 / span 5;
+}
+
+.col-span-6 {
+ grid-column: span 6 / span 6;
+}
+
+.col-span-7 {
+ grid-column: span 7 / span 7;
+}
+
+.col-span-8 {
+ grid-column: span 8 / span 8;
+}
+
+.col-span-9 {
+ grid-column: span 9 / span 9;
+}
+
+.col-span-10 {
+ grid-column: span 10 / span 10;
+}
+
+.col-span-11 {
+ grid-column: span 11 / span 11;
+}
+
+.col-span-12 {
+ grid-column: span 12 / span 12;
+}
+
+.col-span-full {
+ grid-column: 1 / -1;
+}
+
+.col-start-1 {
+ grid-column-start: 1;
+}
+
+.col-start-2 {
+ grid-column-start: 2;
+}
+
+.col-start-3 {
+ grid-column-start: 3;
+}
+
+.col-start-4 {
+ grid-column-start: 4;
+}
+
+.col-start-5 {
+ grid-column-start: 5;
+}
+
+.col-start-6 {
+ grid-column-start: 6;
+}
+
+.col-start-7 {
+ grid-column-start: 7;
+}
+
+.col-start-8 {
+ grid-column-start: 8;
+}
+
+.col-start-9 {
+ grid-column-start: 9;
+}
+
+.col-start-10 {
+ grid-column-start: 10;
+}
+
+.col-start-11 {
+ grid-column-start: 11;
+}
+
+.col-start-12 {
+ grid-column-start: 12;
+}
+
+.col-start-13 {
+ grid-column-start: 13;
+}
+
+.col-start-auto {
+ grid-column-start: auto;
+}
+
+.col-end-1 {
+ grid-column-end: 1;
+}
+
+.col-end-2 {
+ grid-column-end: 2;
+}
+
+.col-end-3 {
+ grid-column-end: 3;
+}
+
+.col-end-4 {
+ grid-column-end: 4;
+}
+
+.col-end-5 {
+ grid-column-end: 5;
+}
+
+.col-end-6 {
+ grid-column-end: 6;
+}
+
+.col-end-7 {
+ grid-column-end: 7;
+}
+
+.col-end-8 {
+ grid-column-end: 8;
+}
+
+.col-end-9 {
+ grid-column-end: 9;
+}
+
+.col-end-10 {
+ grid-column-end: 10;
+}
+
+.col-end-11 {
+ grid-column-end: 11;
+}
+
+.col-end-12 {
+ grid-column-end: 12;
+}
+
+.col-end-13 {
+ grid-column-end: 13;
+}
+
+.col-end-auto {
+ grid-column-end: auto;
+}
+
+.row-auto {
+ grid-row: auto;
+}
+
+.row-span-1 {
+ grid-row: span 1 / span 1;
+}
+
+.row-span-2 {
+ grid-row: span 2 / span 2;
+}
+
+.row-span-3 {
+ grid-row: span 3 / span 3;
+}
+
+.row-span-4 {
+ grid-row: span 4 / span 4;
+}
+
+.row-span-5 {
+ grid-row: span 5 / span 5;
+}
+
+.row-span-6 {
+ grid-row: span 6 / span 6;
+}
+
+.row-span-full {
+ grid-row: 1 / -1;
+}
+
+.row-start-1 {
+ grid-row-start: 1;
+}
+
+.row-start-2 {
+ grid-row-start: 2;
+}
+
+.row-start-3 {
+ grid-row-start: 3;
+}
+
+.row-start-4 {
+ grid-row-start: 4;
+}
+
+.row-start-5 {
+ grid-row-start: 5;
+}
+
+.row-start-6 {
+ grid-row-start: 6;
+}
+
+.row-start-7 {
+ grid-row-start: 7;
+}
+
+.row-start-auto {
+ grid-row-start: auto;
+}
+
+.row-end-1 {
+ grid-row-end: 1;
+}
+
+.row-end-2 {
+ grid-row-end: 2;
+}
+
+.row-end-3 {
+ grid-row-end: 3;
+}
+
+.row-end-4 {
+ grid-row-end: 4;
+}
+
+.row-end-5 {
+ grid-row-end: 5;
+}
+
+.row-end-6 {
+ grid-row-end: 6;
+}
+
+.row-end-7 {
+ grid-row-end: 7;
+}
+
+.row-end-auto {
+ grid-row-end: auto;
+}
+
+.float-right {
+ float: right;
+}
+
+.float-left {
+ float: left;
+}
+
+.float-none {
+ float: none;
+}
+
+.clear-left {
+ clear: left;
+}
+
+.clear-right {
+ clear: right;
+}
+
+.clear-both {
+ clear: both;
+}
+
+.clear-none {
+ clear: none;
+}
+
+.m-0 {
+ margin: 0px;
+}
+
+.m-1 {
+ margin: 0.25rem;
+}
+
+.m-2 {
+ margin: 0.5rem;
+}
+
+.m-3 {
+ margin: 0.75rem;
+}
+
+.m-4 {
+ margin: 1rem;
+}
+
+.m-5 {
+ margin: 1.25rem;
+}
+
+.m-6 {
+ margin: 1.5rem;
+}
+
+.m-7 {
+ margin: 1.75rem;
+}
+
+.m-8 {
+ margin: 2rem;
+}
+
+.m-9 {
+ margin: 2.25rem;
+}
+
+.m-10 {
+ margin: 2.5rem;
+}
+
+.m-11 {
+ margin: 2.75rem;
+}
+
+.m-12 {
+ margin: 3rem;
+}
+
+.m-14 {
+ margin: 3.5rem;
+}
+
+.m-16 {
+ margin: 4rem;
+}
+
+.m-20 {
+ margin: 5rem;
+}
+
+.m-24 {
+ margin: 6rem;
+}
+
+.m-28 {
+ margin: 7rem;
+}
+
+.m-32 {
+ margin: 8rem;
+}
+
+.m-36 {
+ margin: 9rem;
+}
+
+.m-40 {
+ margin: 10rem;
+}
+
+.m-44 {
+ margin: 11rem;
+}
+
+.m-48 {
+ margin: 12rem;
+}
+
+.m-52 {
+ margin: 13rem;
+}
+
+.m-56 {
+ margin: 14rem;
+}
+
+.m-60 {
+ margin: 15rem;
+}
+
+.m-64 {
+ margin: 16rem;
+}
+
+.m-72 {
+ margin: 18rem;
+}
+
+.m-80 {
+ margin: 20rem;
+}
+
+.m-96 {
+ margin: 24rem;
+}
+
+.m-auto {
+ margin: auto;
+}
+
+.m-px {
+ margin: 1px;
+}
+
+.m-0\.5 {
+ margin: 0.125rem;
+}
+
+.m-1\.5 {
+ margin: 0.375rem;
+}
+
+.m-2\.5 {
+ margin: 0.625rem;
+}
+
+.m-3\.5 {
+ margin: 0.875rem;
+}
+
+.-m-0 {
+ margin: 0px;
+}
+
+.-m-1 {
+ margin: -0.25rem;
+}
+
+.-m-2 {
+ margin: -0.5rem;
+}
+
+.-m-3 {
+ margin: -0.75rem;
+}
+
+.-m-4 {
+ margin: -1rem;
+}
+
+.-m-5 {
+ margin: -1.25rem;
+}
+
+.-m-6 {
+ margin: -1.5rem;
+}
+
+.-m-7 {
+ margin: -1.75rem;
+}
+
+.-m-8 {
+ margin: -2rem;
+}
+
+.-m-9 {
+ margin: -2.25rem;
+}
+
+.-m-10 {
+ margin: -2.5rem;
+}
+
+.-m-11 {
+ margin: -2.75rem;
+}
+
+.-m-12 {
+ margin: -3rem;
+}
+
+.-m-14 {
+ margin: -3.5rem;
+}
+
+.-m-16 {
+ margin: -4rem;
+}
+
+.-m-20 {
+ margin: -5rem;
+}
+
+.-m-24 {
+ margin: -6rem;
+}
+
+.-m-28 {
+ margin: -7rem;
+}
+
+.-m-32 {
+ margin: -8rem;
+}
+
+.-m-36 {
+ margin: -9rem;
+}
+
+.-m-40 {
+ margin: -10rem;
+}
+
+.-m-44 {
+ margin: -11rem;
+}
+
+.-m-48 {
+ margin: -12rem;
+}
+
+.-m-52 {
+ margin: -13rem;
+}
+
+.-m-56 {
+ margin: -14rem;
+}
+
+.-m-60 {
+ margin: -15rem;
+}
+
+.-m-64 {
+ margin: -16rem;
+}
+
+.-m-72 {
+ margin: -18rem;
+}
+
+.-m-80 {
+ margin: -20rem;
+}
+
+.-m-96 {
+ margin: -24rem;
+}
+
+.-m-px {
+ margin: -1px;
+}
+
+.-m-0\.5 {
+ margin: -0.125rem;
+}
+
+.-m-1\.5 {
+ margin: -0.375rem;
+}
+
+.-m-2\.5 {
+ margin: -0.625rem;
+}
+
+.-m-3\.5 {
+ margin: -0.875rem;
+}
+
+.mx-0 {
+ margin-left: 0px;
+ margin-right: 0px;
+}
+
+.mx-1 {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem;
+}
+
+.mx-2 {
+ margin-left: 0.5rem;
+ margin-right: 0.5rem;
+}
+
+.mx-3 {
+ margin-left: 0.75rem;
+ margin-right: 0.75rem;
+}
+
+.mx-4 {
+ margin-left: 1rem;
+ margin-right: 1rem;
+}
+
+.mx-5 {
+ margin-left: 1.25rem;
+ margin-right: 1.25rem;
+}
+
+.mx-6 {
+ margin-left: 1.5rem;
+ margin-right: 1.5rem;
+}
+
+.mx-7 {
+ margin-left: 1.75rem;
+ margin-right: 1.75rem;
+}
+
+.mx-8 {
+ margin-left: 2rem;
+ margin-right: 2rem;
+}
+
+.mx-9 {
+ margin-left: 2.25rem;
+ margin-right: 2.25rem;
+}
+
+.mx-10 {
+ margin-left: 2.5rem;
+ margin-right: 2.5rem;
+}
+
+.mx-11 {
+ margin-left: 2.75rem;
+ margin-right: 2.75rem;
+}
+
+.mx-12 {
+ margin-left: 3rem;
+ margin-right: 3rem;
+}
+
+.mx-14 {
+ margin-left: 3.5rem;
+ margin-right: 3.5rem;
+}
+
+.mx-16 {
+ margin-left: 4rem;
+ margin-right: 4rem;
+}
+
+.mx-20 {
+ margin-left: 5rem;
+ margin-right: 5rem;
+}
+
+.mx-24 {
+ margin-left: 6rem;
+ margin-right: 6rem;
+}
+
+.mx-28 {
+ margin-left: 7rem;
+ margin-right: 7rem;
+}
+
+.mx-32 {
+ margin-left: 8rem;
+ margin-right: 8rem;
+}
+
+.mx-36 {
+ margin-left: 9rem;
+ margin-right: 9rem;
+}
+
+.mx-40 {
+ margin-left: 10rem;
+ margin-right: 10rem;
+}
+
+.mx-44 {
+ margin-left: 11rem;
+ margin-right: 11rem;
+}
+
+.mx-48 {
+ margin-left: 12rem;
+ margin-right: 12rem;
+}
+
+.mx-52 {
+ margin-left: 13rem;
+ margin-right: 13rem;
+}
+
+.mx-56 {
+ margin-left: 14rem;
+ margin-right: 14rem;
+}
+
+.mx-60 {
+ margin-left: 15rem;
+ margin-right: 15rem;
+}
+
+.mx-64 {
+ margin-left: 16rem;
+ margin-right: 16rem;
+}
+
+.mx-72 {
+ margin-left: 18rem;
+ margin-right: 18rem;
+}
+
+.mx-80 {
+ margin-left: 20rem;
+ margin-right: 20rem;
+}
+
+.mx-96 {
+ margin-left: 24rem;
+ margin-right: 24rem;
+}
+
+.mx-auto {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.mx-px {
+ margin-left: 1px;
+ margin-right: 1px;
+}
+
+.mx-0\.5 {
+ margin-left: 0.125rem;
+ margin-right: 0.125rem;
+}
+
+.mx-1\.5 {
+ margin-left: 0.375rem;
+ margin-right: 0.375rem;
+}
+
+.mx-2\.5 {
+ margin-left: 0.625rem;
+ margin-right: 0.625rem;
+}
+
+.mx-3\.5 {
+ margin-left: 0.875rem;
+ margin-right: 0.875rem;
+}
+
+.-mx-0 {
+ margin-left: 0px;
+ margin-right: 0px;
+}
+
+.-mx-1 {
+ margin-left: -0.25rem;
+ margin-right: -0.25rem;
+}
+
+.-mx-2 {
+ margin-left: -0.5rem;
+ margin-right: -0.5rem;
+}
+
+.-mx-3 {
+ margin-left: -0.75rem;
+ margin-right: -0.75rem;
+}
+
+.-mx-4 {
+ margin-left: -1rem;
+ margin-right: -1rem;
+}
+
+.-mx-5 {
+ margin-left: -1.25rem;
+ margin-right: -1.25rem;
+}
+
+.-mx-6 {
+ margin-left: -1.5rem;
+ margin-right: -1.5rem;
+}
+
+.-mx-7 {
+ margin-left: -1.75rem;
+ margin-right: -1.75rem;
+}
+
+.-mx-8 {
+ margin-left: -2rem;
+ margin-right: -2rem;
+}
+
+.-mx-9 {
+ margin-left: -2.25rem;
+ margin-right: -2.25rem;
+}
+
+.-mx-10 {
+ margin-left: -2.5rem;
+ margin-right: -2.5rem;
+}
+
+.-mx-11 {
+ margin-left: -2.75rem;
+ margin-right: -2.75rem;
+}
+
+.-mx-12 {
+ margin-left: -3rem;
+ margin-right: -3rem;
+}
+
+.-mx-14 {
+ margin-left: -3.5rem;
+ margin-right: -3.5rem;
+}
+
+.-mx-16 {
+ margin-left: -4rem;
+ margin-right: -4rem;
+}
+
+.-mx-20 {
+ margin-left: -5rem;
+ margin-right: -5rem;
+}
+
+.-mx-24 {
+ margin-left: -6rem;
+ margin-right: -6rem;
+}
+
+.-mx-28 {
+ margin-left: -7rem;
+ margin-right: -7rem;
+}
+
+.-mx-32 {
+ margin-left: -8rem;
+ margin-right: -8rem;
+}
+
+.-mx-36 {
+ margin-left: -9rem;
+ margin-right: -9rem;
+}
+
+.-mx-40 {
+ margin-left: -10rem;
+ margin-right: -10rem;
+}
+
+.-mx-44 {
+ margin-left: -11rem;
+ margin-right: -11rem;
+}
+
+.-mx-48 {
+ margin-left: -12rem;
+ margin-right: -12rem;
+}
+
+.-mx-52 {
+ margin-left: -13rem;
+ margin-right: -13rem;
+}
+
+.-mx-56 {
+ margin-left: -14rem;
+ margin-right: -14rem;
+}
+
+.-mx-60 {
+ margin-left: -15rem;
+ margin-right: -15rem;
+}
+
+.-mx-64 {
+ margin-left: -16rem;
+ margin-right: -16rem;
+}
+
+.-mx-72 {
+ margin-left: -18rem;
+ margin-right: -18rem;
+}
+
+.-mx-80 {
+ margin-left: -20rem;
+ margin-right: -20rem;
+}
+
+.-mx-96 {
+ margin-left: -24rem;
+ margin-right: -24rem;
+}
+
+.-mx-px {
+ margin-left: -1px;
+ margin-right: -1px;
+}
+
+.-mx-0\.5 {
+ margin-left: -0.125rem;
+ margin-right: -0.125rem;
+}
+
+.-mx-1\.5 {
+ margin-left: -0.375rem;
+ margin-right: -0.375rem;
+}
+
+.-mx-2\.5 {
+ margin-left: -0.625rem;
+ margin-right: -0.625rem;
+}
+
+.-mx-3\.5 {
+ margin-left: -0.875rem;
+ margin-right: -0.875rem;
+}
+
+.my-0 {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.my-1 {
+ margin-top: 0.25rem;
+ margin-bottom: 0.25rem;
+}
+
+.my-2 {
+ margin-top: 0.5rem;
+ margin-bottom: 0.5rem;
+}
+
+.my-3 {
+ margin-top: 0.75rem;
+ margin-bottom: 0.75rem;
+}
+
+.my-4 {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+}
+
+.my-5 {
+ margin-top: 1.25rem;
+ margin-bottom: 1.25rem;
+}
+
+.my-6 {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+}
+
+.my-7 {
+ margin-top: 1.75rem;
+ margin-bottom: 1.75rem;
+}
+
+.my-8 {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+}
+
+.my-9 {
+ margin-top: 2.25rem;
+ margin-bottom: 2.25rem;
+}
+
+.my-10 {
+ margin-top: 2.5rem;
+ margin-bottom: 2.5rem;
+}
+
+.my-11 {
+ margin-top: 2.75rem;
+ margin-bottom: 2.75rem;
+}
+
+.my-12 {
+ margin-top: 3rem;
+ margin-bottom: 3rem;
+}
+
+.my-14 {
+ margin-top: 3.5rem;
+ margin-bottom: 3.5rem;
+}
+
+.my-16 {
+ margin-top: 4rem;
+ margin-bottom: 4rem;
+}
+
+.my-20 {
+ margin-top: 5rem;
+ margin-bottom: 5rem;
+}
+
+.my-24 {
+ margin-top: 6rem;
+ margin-bottom: 6rem;
+}
+
+.my-28 {
+ margin-top: 7rem;
+ margin-bottom: 7rem;
+}
+
+.my-32 {
+ margin-top: 8rem;
+ margin-bottom: 8rem;
+}
+
+.my-36 {
+ margin-top: 9rem;
+ margin-bottom: 9rem;
+}
+
+.my-40 {
+ margin-top: 10rem;
+ margin-bottom: 10rem;
+}
+
+.my-44 {
+ margin-top: 11rem;
+ margin-bottom: 11rem;
+}
+
+.my-48 {
+ margin-top: 12rem;
+ margin-bottom: 12rem;
+}
+
+.my-52 {
+ margin-top: 13rem;
+ margin-bottom: 13rem;
+}
+
+.my-56 {
+ margin-top: 14rem;
+ margin-bottom: 14rem;
+}
+
+.my-60 {
+ margin-top: 15rem;
+ margin-bottom: 15rem;
+}
+
+.my-64 {
+ margin-top: 16rem;
+ margin-bottom: 16rem;
+}
+
+.my-72 {
+ margin-top: 18rem;
+ margin-bottom: 18rem;
+}
+
+.my-80 {
+ margin-top: 20rem;
+ margin-bottom: 20rem;
+}
+
+.my-96 {
+ margin-top: 24rem;
+ margin-bottom: 24rem;
+}
+
+.my-auto {
+ margin-top: auto;
+ margin-bottom: auto;
+}
+
+.my-px {
+ margin-top: 1px;
+ margin-bottom: 1px;
+}
+
+.my-0\.5 {
+ margin-top: 0.125rem;
+ margin-bottom: 0.125rem;
+}
+
+.my-1\.5 {
+ margin-top: 0.375rem;
+ margin-bottom: 0.375rem;
+}
+
+.my-2\.5 {
+ margin-top: 0.625rem;
+ margin-bottom: 0.625rem;
+}
+
+.my-3\.5 {
+ margin-top: 0.875rem;
+ margin-bottom: 0.875rem;
+}
+
+.-my-0 {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.-my-1 {
+ margin-top: -0.25rem;
+ margin-bottom: -0.25rem;
+}
+
+.-my-2 {
+ margin-top: -0.5rem;
+ margin-bottom: -0.5rem;
+}
+
+.-my-3 {
+ margin-top: -0.75rem;
+ margin-bottom: -0.75rem;
+}
+
+.-my-4 {
+ margin-top: -1rem;
+ margin-bottom: -1rem;
+}
+
+.-my-5 {
+ margin-top: -1.25rem;
+ margin-bottom: -1.25rem;
+}
+
+.-my-6 {
+ margin-top: -1.5rem;
+ margin-bottom: -1.5rem;
+}
+
+.-my-7 {
+ margin-top: -1.75rem;
+ margin-bottom: -1.75rem;
+}
+
+.-my-8 {
+ margin-top: -2rem;
+ margin-bottom: -2rem;
+}
+
+.-my-9 {
+ margin-top: -2.25rem;
+ margin-bottom: -2.25rem;
+}
+
+.-my-10 {
+ margin-top: -2.5rem;
+ margin-bottom: -2.5rem;
+}
+
+.-my-11 {
+ margin-top: -2.75rem;
+ margin-bottom: -2.75rem;
+}
+
+.-my-12 {
+ margin-top: -3rem;
+ margin-bottom: -3rem;
+}
+
+.-my-14 {
+ margin-top: -3.5rem;
+ margin-bottom: -3.5rem;
+}
+
+.-my-16 {
+ margin-top: -4rem;
+ margin-bottom: -4rem;
+}
+
+.-my-20 {
+ margin-top: -5rem;
+ margin-bottom: -5rem;
+}
+
+.-my-24 {
+ margin-top: -6rem;
+ margin-bottom: -6rem;
+}
+
+.-my-28 {
+ margin-top: -7rem;
+ margin-bottom: -7rem;
+}
+
+.-my-32 {
+ margin-top: -8rem;
+ margin-bottom: -8rem;
+}
+
+.-my-36 {
+ margin-top: -9rem;
+ margin-bottom: -9rem;
+}
+
+.-my-40 {
+ margin-top: -10rem;
+ margin-bottom: -10rem;
+}
+
+.-my-44 {
+ margin-top: -11rem;
+ margin-bottom: -11rem;
+}
+
+.-my-48 {
+ margin-top: -12rem;
+ margin-bottom: -12rem;
+}
+
+.-my-52 {
+ margin-top: -13rem;
+ margin-bottom: -13rem;
+}
+
+.-my-56 {
+ margin-top: -14rem;
+ margin-bottom: -14rem;
+}
+
+.-my-60 {
+ margin-top: -15rem;
+ margin-bottom: -15rem;
+}
+
+.-my-64 {
+ margin-top: -16rem;
+ margin-bottom: -16rem;
+}
+
+.-my-72 {
+ margin-top: -18rem;
+ margin-bottom: -18rem;
+}
+
+.-my-80 {
+ margin-top: -20rem;
+ margin-bottom: -20rem;
+}
+
+.-my-96 {
+ margin-top: -24rem;
+ margin-bottom: -24rem;
+}
+
+.-my-px {
+ margin-top: -1px;
+ margin-bottom: -1px;
+}
+
+.-my-0\.5 {
+ margin-top: -0.125rem;
+ margin-bottom: -0.125rem;
+}
+
+.-my-1\.5 {
+ margin-top: -0.375rem;
+ margin-bottom: -0.375rem;
+}
+
+.-my-2\.5 {
+ margin-top: -0.625rem;
+ margin-bottom: -0.625rem;
+}
+
+.-my-3\.5 {
+ margin-top: -0.875rem;
+ margin-bottom: -0.875rem;
+}
+
+.mt-0 {
+ margin-top: 0px;
+}
+
+.mt-1 {
+ margin-top: 0.25rem;
+}
+
+.mt-2 {
+ margin-top: 0.5rem;
+}
+
+.mt-3 {
+ margin-top: 0.75rem;
+}
+
+.mt-4 {
+ margin-top: 1rem;
+}
+
+.mt-5 {
+ margin-top: 1.25rem;
+}
+
+.mt-6 {
+ margin-top: 1.5rem;
+}
+
+.mt-7 {
+ margin-top: 1.75rem;
+}
+
+.mt-8 {
+ margin-top: 2rem;
+}
+
+.mt-9 {
+ margin-top: 2.25rem;
+}
+
+.mt-10 {
+ margin-top: 2.5rem;
+}
+
+.mt-11 {
+ margin-top: 2.75rem;
+}
+
+.mt-12 {
+ margin-top: 3rem;
+}
+
+.mt-14 {
+ margin-top: 3.5rem;
+}
+
+.mt-16 {
+ margin-top: 4rem;
+}
+
+.mt-20 {
+ margin-top: 5rem;
+}
+
+.mt-24 {
+ margin-top: 6rem;
+}
+
+.mt-28 {
+ margin-top: 7rem;
+}
+
+.mt-32 {
+ margin-top: 8rem;
+}
+
+.mt-36 {
+ margin-top: 9rem;
+}
+
+.mt-40 {
+ margin-top: 10rem;
+}
+
+.mt-44 {
+ margin-top: 11rem;
+}
+
+.mt-48 {
+ margin-top: 12rem;
+}
+
+.mt-52 {
+ margin-top: 13rem;
+}
+
+.mt-56 {
+ margin-top: 14rem;
+}
+
+.mt-60 {
+ margin-top: 15rem;
+}
+
+.mt-64 {
+ margin-top: 16rem;
+}
+
+.mt-72 {
+ margin-top: 18rem;
+}
+
+.mt-80 {
+ margin-top: 20rem;
+}
+
+.mt-96 {
+ margin-top: 24rem;
+}
+
+.mt-auto {
+ margin-top: auto;
+}
+
+.mt-px {
+ margin-top: 1px;
+}
+
+.mt-0\.5 {
+ margin-top: 0.125rem;
+}
+
+.mt-1\.5 {
+ margin-top: 0.375rem;
+}
+
+.mt-2\.5 {
+ margin-top: 0.625rem;
+}
+
+.mt-3\.5 {
+ margin-top: 0.875rem;
+}
+
+.-mt-0 {
+ margin-top: 0px;
+}
+
+.-mt-1 {
+ margin-top: -0.25rem;
+}
+
+.-mt-2 {
+ margin-top: -0.5rem;
+}
+
+.-mt-3 {
+ margin-top: -0.75rem;
+}
+
+.-mt-4 {
+ margin-top: -1rem;
+}
+
+.-mt-5 {
+ margin-top: -1.25rem;
+}
+
+.-mt-6 {
+ margin-top: -1.5rem;
+}
+
+.-mt-7 {
+ margin-top: -1.75rem;
+}
+
+.-mt-8 {
+ margin-top: -2rem;
+}
+
+.-mt-9 {
+ margin-top: -2.25rem;
+}
+
+.-mt-10 {
+ margin-top: -2.5rem;
+}
+
+.-mt-11 {
+ margin-top: -2.75rem;
+}
+
+.-mt-12 {
+ margin-top: -3rem;
+}
+
+.-mt-14 {
+ margin-top: -3.5rem;
+}
+
+.-mt-16 {
+ margin-top: -4rem;
+}
+
+.-mt-20 {
+ margin-top: -5rem;
+}
+
+.-mt-24 {
+ margin-top: -6rem;
+}
+
+.-mt-28 {
+ margin-top: -7rem;
+}
+
+.-mt-32 {
+ margin-top: -8rem;
+}
+
+.-mt-36 {
+ margin-top: -9rem;
+}
+
+.-mt-40 {
+ margin-top: -10rem;
+}
+
+.-mt-44 {
+ margin-top: -11rem;
+}
+
+.-mt-48 {
+ margin-top: -12rem;
+}
+
+.-mt-52 {
+ margin-top: -13rem;
+}
+
+.-mt-56 {
+ margin-top: -14rem;
+}
+
+.-mt-60 {
+ margin-top: -15rem;
+}
+
+.-mt-64 {
+ margin-top: -16rem;
+}
+
+.-mt-72 {
+ margin-top: -18rem;
+}
+
+.-mt-80 {
+ margin-top: -20rem;
+}
+
+.-mt-96 {
+ margin-top: -24rem;
+}
+
+.-mt-px {
+ margin-top: -1px;
+}
+
+.-mt-0\.5 {
+ margin-top: -0.125rem;
+}
+
+.-mt-1\.5 {
+ margin-top: -0.375rem;
+}
+
+.-mt-2\.5 {
+ margin-top: -0.625rem;
+}
+
+.-mt-3\.5 {
+ margin-top: -0.875rem;
+}
+
+.mr-0 {
+ margin-right: 0px;
+}
+
+.mr-1 {
+ margin-right: 0.25rem;
+}
+
+.mr-2 {
+ margin-right: 0.5rem;
+}
+
+.mr-3 {
+ margin-right: 0.75rem;
+}
+
+.mr-4 {
+ margin-right: 1rem;
+}
+
+.mr-5 {
+ margin-right: 1.25rem;
+}
+
+.mr-6 {
+ margin-right: 1.5rem;
+}
+
+.mr-7 {
+ margin-right: 1.75rem;
+}
+
+.mr-8 {
+ margin-right: 2rem;
+}
+
+.mr-9 {
+ margin-right: 2.25rem;
+}
+
+.mr-10 {
+ margin-right: 2.5rem;
+}
+
+.mr-11 {
+ margin-right: 2.75rem;
+}
+
+.mr-12 {
+ margin-right: 3rem;
+}
+
+.mr-14 {
+ margin-right: 3.5rem;
+}
+
+.mr-16 {
+ margin-right: 4rem;
+}
+
+.mr-20 {
+ margin-right: 5rem;
+}
+
+.mr-24 {
+ margin-right: 6rem;
+}
+
+.mr-28 {
+ margin-right: 7rem;
+}
+
+.mr-32 {
+ margin-right: 8rem;
+}
+
+.mr-36 {
+ margin-right: 9rem;
+}
+
+.mr-40 {
+ margin-right: 10rem;
+}
+
+.mr-44 {
+ margin-right: 11rem;
+}
+
+.mr-48 {
+ margin-right: 12rem;
+}
+
+.mr-52 {
+ margin-right: 13rem;
+}
+
+.mr-56 {
+ margin-right: 14rem;
+}
+
+.mr-60 {
+ margin-right: 15rem;
+}
+
+.mr-64 {
+ margin-right: 16rem;
+}
+
+.mr-72 {
+ margin-right: 18rem;
+}
+
+.mr-80 {
+ margin-right: 20rem;
+}
+
+.mr-96 {
+ margin-right: 24rem;
+}
+
+.mr-auto {
+ margin-right: auto;
+}
+
+.mr-px {
+ margin-right: 1px;
+}
+
+.mr-0\.5 {
+ margin-right: 0.125rem;
+}
+
+.mr-1\.5 {
+ margin-right: 0.375rem;
+}
+
+.mr-2\.5 {
+ margin-right: 0.625rem;
+}
+
+.mr-3\.5 {
+ margin-right: 0.875rem;
+}
+
+.-mr-0 {
+ margin-right: 0px;
+}
+
+.-mr-1 {
+ margin-right: -0.25rem;
+}
+
+.-mr-2 {
+ margin-right: -0.5rem;
+}
+
+.-mr-3 {
+ margin-right: -0.75rem;
+}
+
+.-mr-4 {
+ margin-right: -1rem;
+}
+
+.-mr-5 {
+ margin-right: -1.25rem;
+}
+
+.-mr-6 {
+ margin-right: -1.5rem;
+}
+
+.-mr-7 {
+ margin-right: -1.75rem;
+}
+
+.-mr-8 {
+ margin-right: -2rem;
+}
+
+.-mr-9 {
+ margin-right: -2.25rem;
+}
+
+.-mr-10 {
+ margin-right: -2.5rem;
+}
+
+.-mr-11 {
+ margin-right: -2.75rem;
+}
+
+.-mr-12 {
+ margin-right: -3rem;
+}
+
+.-mr-14 {
+ margin-right: -3.5rem;
+}
+
+.-mr-16 {
+ margin-right: -4rem;
+}
+
+.-mr-20 {
+ margin-right: -5rem;
+}
+
+.-mr-24 {
+ margin-right: -6rem;
+}
+
+.-mr-28 {
+ margin-right: -7rem;
+}
+
+.-mr-32 {
+ margin-right: -8rem;
+}
+
+.-mr-36 {
+ margin-right: -9rem;
+}
+
+.-mr-40 {
+ margin-right: -10rem;
+}
+
+.-mr-44 {
+ margin-right: -11rem;
+}
+
+.-mr-48 {
+ margin-right: -12rem;
+}
+
+.-mr-52 {
+ margin-right: -13rem;
+}
+
+.-mr-56 {
+ margin-right: -14rem;
+}
+
+.-mr-60 {
+ margin-right: -15rem;
+}
+
+.-mr-64 {
+ margin-right: -16rem;
+}
+
+.-mr-72 {
+ margin-right: -18rem;
+}
+
+.-mr-80 {
+ margin-right: -20rem;
+}
+
+.-mr-96 {
+ margin-right: -24rem;
+}
+
+.-mr-px {
+ margin-right: -1px;
+}
+
+.-mr-0\.5 {
+ margin-right: -0.125rem;
+}
+
+.-mr-1\.5 {
+ margin-right: -0.375rem;
+}
+
+.-mr-2\.5 {
+ margin-right: -0.625rem;
+}
+
+.-mr-3\.5 {
+ margin-right: -0.875rem;
+}
+
+.mb-0 {
+ margin-bottom: 0px;
+}
+
+.mb-1 {
+ margin-bottom: 0.25rem;
+}
+
+.mb-2 {
+ margin-bottom: 0.5rem;
+}
+
+.mb-3 {
+ margin-bottom: 0.75rem;
+}
+
+.mb-4 {
+ margin-bottom: 1rem;
+}
+
+.mb-5 {
+ margin-bottom: 1.25rem;
+}
+
+.mb-6 {
+ margin-bottom: 1.5rem;
+}
+
+.mb-7 {
+ margin-bottom: 1.75rem;
+}
+
+.mb-8 {
+ margin-bottom: 2rem;
+}
+
+.mb-9 {
+ margin-bottom: 2.25rem;
+}
+
+.mb-10 {
+ margin-bottom: 2.5rem;
+}
+
+.mb-11 {
+ margin-bottom: 2.75rem;
+}
+
+.mb-12 {
+ margin-bottom: 3rem;
+}
+
+.mb-14 {
+ margin-bottom: 3.5rem;
+}
+
+.mb-16 {
+ margin-bottom: 4rem;
+}
+
+.mb-20 {
+ margin-bottom: 5rem;
+}
+
+.mb-24 {
+ margin-bottom: 6rem;
+}
+
+.mb-28 {
+ margin-bottom: 7rem;
+}
+
+.mb-32 {
+ margin-bottom: 8rem;
+}
+
+.mb-36 {
+ margin-bottom: 9rem;
+}
+
+.mb-40 {
+ margin-bottom: 10rem;
+}
+
+.mb-44 {
+ margin-bottom: 11rem;
+}
+
+.mb-48 {
+ margin-bottom: 12rem;
+}
+
+.mb-52 {
+ margin-bottom: 13rem;
+}
+
+.mb-56 {
+ margin-bottom: 14rem;
+}
+
+.mb-60 {
+ margin-bottom: 15rem;
+}
+
+.mb-64 {
+ margin-bottom: 16rem;
+}
+
+.mb-72 {
+ margin-bottom: 18rem;
+}
+
+.mb-80 {
+ margin-bottom: 20rem;
+}
+
+.mb-96 {
+ margin-bottom: 24rem;
+}
+
+.mb-auto {
+ margin-bottom: auto;
+}
+
+.mb-px {
+ margin-bottom: 1px;
+}
+
+.mb-0\.5 {
+ margin-bottom: 0.125rem;
+}
+
+.mb-1\.5 {
+ margin-bottom: 0.375rem;
+}
+
+.mb-2\.5 {
+ margin-bottom: 0.625rem;
+}
+
+.mb-3\.5 {
+ margin-bottom: 0.875rem;
+}
+
+.-mb-0 {
+ margin-bottom: 0px;
+}
+
+.-mb-1 {
+ margin-bottom: -0.25rem;
+}
+
+.-mb-2 {
+ margin-bottom: -0.5rem;
+}
+
+.-mb-3 {
+ margin-bottom: -0.75rem;
+}
+
+.-mb-4 {
+ margin-bottom: -1rem;
+}
+
+.-mb-5 {
+ margin-bottom: -1.25rem;
+}
+
+.-mb-6 {
+ margin-bottom: -1.5rem;
+}
+
+.-mb-7 {
+ margin-bottom: -1.75rem;
+}
+
+.-mb-8 {
+ margin-bottom: -2rem;
+}
+
+.-mb-9 {
+ margin-bottom: -2.25rem;
+}
+
+.-mb-10 {
+ margin-bottom: -2.5rem;
+}
+
+.-mb-11 {
+ margin-bottom: -2.75rem;
+}
+
+.-mb-12 {
+ margin-bottom: -3rem;
+}
+
+.-mb-14 {
+ margin-bottom: -3.5rem;
+}
+
+.-mb-16 {
+ margin-bottom: -4rem;
+}
+
+.-mb-20 {
+ margin-bottom: -5rem;
+}
+
+.-mb-24 {
+ margin-bottom: -6rem;
+}
+
+.-mb-28 {
+ margin-bottom: -7rem;
+}
+
+.-mb-32 {
+ margin-bottom: -8rem;
+}
+
+.-mb-36 {
+ margin-bottom: -9rem;
+}
+
+.-mb-40 {
+ margin-bottom: -10rem;
+}
+
+.-mb-44 {
+ margin-bottom: -11rem;
+}
+
+.-mb-48 {
+ margin-bottom: -12rem;
+}
+
+.-mb-52 {
+ margin-bottom: -13rem;
+}
+
+.-mb-56 {
+ margin-bottom: -14rem;
+}
+
+.-mb-60 {
+ margin-bottom: -15rem;
+}
+
+.-mb-64 {
+ margin-bottom: -16rem;
+}
+
+.-mb-72 {
+ margin-bottom: -18rem;
+}
+
+.-mb-80 {
+ margin-bottom: -20rem;
+}
+
+.-mb-96 {
+ margin-bottom: -24rem;
+}
+
+.-mb-px {
+ margin-bottom: -1px;
+}
+
+.-mb-0\.5 {
+ margin-bottom: -0.125rem;
+}
+
+.-mb-1\.5 {
+ margin-bottom: -0.375rem;
+}
+
+.-mb-2\.5 {
+ margin-bottom: -0.625rem;
+}
+
+.-mb-3\.5 {
+ margin-bottom: -0.875rem;
+}
+
+.ml-0 {
+ margin-left: 0px;
+}
+
+.ml-1 {
+ margin-left: 0.25rem;
+}
+
+.ml-2 {
+ margin-left: 0.5rem;
+}
+
+.ml-3 {
+ margin-left: 0.75rem;
+}
+
+.ml-4 {
+ margin-left: 1rem;
+}
+
+.ml-5 {
+ margin-left: 1.25rem;
+}
+
+.ml-6 {
+ margin-left: 1.5rem;
+}
+
+.ml-7 {
+ margin-left: 1.75rem;
+}
+
+.ml-8 {
+ margin-left: 2rem;
+}
+
+.ml-9 {
+ margin-left: 2.25rem;
+}
+
+.ml-10 {
+ margin-left: 2.5rem;
+}
+
+.ml-11 {
+ margin-left: 2.75rem;
+}
+
+.ml-12 {
+ margin-left: 3rem;
+}
+
+.ml-14 {
+ margin-left: 3.5rem;
+}
+
+.ml-16 {
+ margin-left: 4rem;
+}
+
+.ml-20 {
+ margin-left: 5rem;
+}
+
+.ml-24 {
+ margin-left: 6rem;
+}
+
+.ml-28 {
+ margin-left: 7rem;
+}
+
+.ml-32 {
+ margin-left: 8rem;
+}
+
+.ml-36 {
+ margin-left: 9rem;
+}
+
+.ml-40 {
+ margin-left: 10rem;
+}
+
+.ml-44 {
+ margin-left: 11rem;
+}
+
+.ml-48 {
+ margin-left: 12rem;
+}
+
+.ml-52 {
+ margin-left: 13rem;
+}
+
+.ml-56 {
+ margin-left: 14rem;
+}
+
+.ml-60 {
+ margin-left: 15rem;
+}
+
+.ml-64 {
+ margin-left: 16rem;
+}
+
+.ml-72 {
+ margin-left: 18rem;
+}
+
+.ml-80 {
+ margin-left: 20rem;
+}
+
+.ml-96 {
+ margin-left: 24rem;
+}
+
+.ml-auto {
+ margin-left: auto;
+}
+
+.ml-px {
+ margin-left: 1px;
+}
+
+.ml-0\.5 {
+ margin-left: 0.125rem;
+}
+
+.ml-1\.5 {
+ margin-left: 0.375rem;
+}
+
+.ml-2\.5 {
+ margin-left: 0.625rem;
+}
+
+.ml-3\.5 {
+ margin-left: 0.875rem;
+}
+
+.-ml-0 {
+ margin-left: 0px;
+}
+
+.-ml-1 {
+ margin-left: -0.25rem;
+}
+
+.-ml-2 {
+ margin-left: -0.5rem;
+}
+
+.-ml-3 {
+ margin-left: -0.75rem;
+}
+
+.-ml-4 {
+ margin-left: -1rem;
+}
+
+.-ml-5 {
+ margin-left: -1.25rem;
+}
+
+.-ml-6 {
+ margin-left: -1.5rem;
+}
+
+.-ml-7 {
+ margin-left: -1.75rem;
+}
+
+.-ml-8 {
+ margin-left: -2rem;
+}
+
+.-ml-9 {
+ margin-left: -2.25rem;
+}
+
+.-ml-10 {
+ margin-left: -2.5rem;
+}
+
+.-ml-11 {
+ margin-left: -2.75rem;
+}
+
+.-ml-12 {
+ margin-left: -3rem;
+}
+
+.-ml-14 {
+ margin-left: -3.5rem;
+}
+
+.-ml-16 {
+ margin-left: -4rem;
+}
+
+.-ml-20 {
+ margin-left: -5rem;
+}
+
+.-ml-24 {
+ margin-left: -6rem;
+}
+
+.-ml-28 {
+ margin-left: -7rem;
+}
+
+.-ml-32 {
+ margin-left: -8rem;
+}
+
+.-ml-36 {
+ margin-left: -9rem;
+}
+
+.-ml-40 {
+ margin-left: -10rem;
+}
+
+.-ml-44 {
+ margin-left: -11rem;
+}
+
+.-ml-48 {
+ margin-left: -12rem;
+}
+
+.-ml-52 {
+ margin-left: -13rem;
+}
+
+.-ml-56 {
+ margin-left: -14rem;
+}
+
+.-ml-60 {
+ margin-left: -15rem;
+}
+
+.-ml-64 {
+ margin-left: -16rem;
+}
+
+.-ml-72 {
+ margin-left: -18rem;
+}
+
+.-ml-80 {
+ margin-left: -20rem;
+}
+
+.-ml-96 {
+ margin-left: -24rem;
+}
+
+.-ml-px {
+ margin-left: -1px;
+}
+
+.-ml-0\.5 {
+ margin-left: -0.125rem;
+}
+
+.-ml-1\.5 {
+ margin-left: -0.375rem;
+}
+
+.-ml-2\.5 {
+ margin-left: -0.625rem;
+}
+
+.-ml-3\.5 {
+ margin-left: -0.875rem;
+}
+
+.box-border {
+ box-sizing: border-box;
+}
+
+.box-content {
+ box-sizing: content-box;
+}
+
+.block {
+ display: block;
+}
+
+.inline-block {
+ display: inline-block;
+}
+
+.inline {
+ display: inline;
+}
+
+.flex {
+ display: flex;
+}
+
+.inline-flex {
+ display: inline-flex;
+}
+
+.grid {
+ display: grid;
+}
+
+.inline-grid {
+ display: inline-grid;
+}
+
+.contents {
+ display: contents;
+}
+
+.list-item {
+ display: list-item;
+}
+
+.hidden {
+ display: none;
+}
+
+.flex-1 {
+ flex: 1 1 0%;
+}
+
+.flex-auto {
+ flex: 1 1 auto;
+}
+
+.flex-initial {
+ flex: 0 1 auto;
+}
+
+.flex-none {
+ flex: none;
+}
+
+.flex-shrink-0 {
+ flex-shrink: 0;
+}
+
+.flex-shrink {
+ flex-shrink: 1;
+}
+
+.flex-grow-0 {
+ flex-grow: 0;
+}
+
+.flex-grow {
+ flex-grow: 1;
+}
+
+@keyframes spin {
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes ping {
+ 75%,
+ 100% {
+ transform: scale(2);
+ opacity: 0;
+ }
+}
+
+@keyframes pulse {
+ 50% {
+ opacity: 0.5;
+ }
+}
+
+@keyframes bounce {
+ 0%,
+ 100% {
+ transform: translateY(-25%);
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
+ }
+
+ 50% {
+ transform: none;
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
+ }
+}
+
+.animate-none {
+ animation: none;
+}
+
+.animate-spin {
+ animation: spin 1s linear infinite;
+}
+
+.animate-ping {
+ animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
+}
+
+.animate-pulse {
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
+}
+
+.animate-bounce {
+ animation: bounce 1s infinite;
+}
+
+.cursor-auto {
+ cursor: auto;
+}
+
+.cursor-default {
+ cursor: default;
+}
+
+.cursor-pointer {
+ cursor: pointer;
+}
+
+.cursor-wait {
+ cursor: wait;
+}
+
+.cursor-text {
+ cursor: text;
+}
+
+.cursor-move {
+ cursor: move;
+}
+
+.cursor-help {
+ cursor: help;
+}
+
+.cursor-not-allowed {
+ cursor: not-allowed;
+}
+
+.select-none {
+ -webkit-user-select: none;
+ user-select: none;
+}
+
+.select-text {
+ -webkit-user-select: text;
+ user-select: text;
+}
+
+.select-all {
+ -webkit-user-select: all;
+ user-select: all;
+}
+
+.select-auto {
+ -webkit-user-select: auto;
+ user-select: auto;
+}
+
+.auto-cols-auto {
+ grid-auto-columns: auto;
+}
+
+.auto-cols-min {
+ grid-auto-columns: min-content;
+}
+
+.auto-cols-max {
+ grid-auto-columns: max-content;
+}
+
+.auto-cols-fr {
+ grid-auto-columns: minmax(0, 1fr);
+}
+
+.grid-flow-row {
+ grid-auto-flow: row;
+}
+
+.grid-flow-col {
+ grid-auto-flow: column;
+}
+
+.grid-flow-row-dense {
+ grid-auto-flow: row dense;
+}
+
+.grid-flow-col-dense {
+ grid-auto-flow: column dense;
+}
+
+.auto-rows-auto {
+ grid-auto-rows: auto;
+}
+
+.auto-rows-min {
+ grid-auto-rows: min-content;
+}
+
+.auto-rows-max {
+ grid-auto-rows: max-content;
+}
+
+.auto-rows-fr {
+ grid-auto-rows: minmax(0, 1fr);
+}
+
+.grid-cols-1 {
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+}
+
+.grid-cols-2 {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+}
+
+.grid-cols-3 {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+}
+
+.grid-cols-4 {
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+}
+
+.grid-cols-5 {
+ grid-template-columns: repeat(5, minmax(0, 1fr));
+}
+
+.grid-cols-6 {
+ grid-template-columns: repeat(6, minmax(0, 1fr));
+}
+
+.grid-cols-7 {
+ grid-template-columns: repeat(7, minmax(0, 1fr));
+}
+
+.grid-cols-8 {
+ grid-template-columns: repeat(8, minmax(0, 1fr));
+}
+
+.grid-cols-9 {
+ grid-template-columns: repeat(9, minmax(0, 1fr));
+}
+
+.grid-cols-10 {
+ grid-template-columns: repeat(10, minmax(0, 1fr));
+}
+
+.grid-cols-11 {
+ grid-template-columns: repeat(11, minmax(0, 1fr));
+}
+
+.grid-cols-12 {
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+}
+
+.grid-cols-none {
+ grid-template-columns: none;
+}
+
+.grid-rows-1 {
+ grid-template-rows: repeat(1, minmax(0, 1fr));
+}
+
+.grid-rows-2 {
+ grid-template-rows: repeat(2, minmax(0, 1fr));
+}
+
+.grid-rows-3 {
+ grid-template-rows: repeat(3, minmax(0, 1fr));
+}
+
+.grid-rows-4 {
+ grid-template-rows: repeat(4, minmax(0, 1fr));
+}
+
+.grid-rows-5 {
+ grid-template-rows: repeat(5, minmax(0, 1fr));
+}
+
+.grid-rows-6 {
+ grid-template-rows: repeat(6, minmax(0, 1fr));
+}
+
+.grid-rows-none {
+ grid-template-rows: none;
+}
+
+.flex-row {
+ flex-direction: row;
+}
+
+.flex-row-reverse {
+ flex-direction: row-reverse;
+}
+
+.flex-col {
+ flex-direction: column;
+}
+
+.flex-col-reverse {
+ flex-direction: column-reverse;
+}
+
+.flex-wrap {
+ flex-wrap: wrap;
+}
+
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse;
+}
+
+.flex-nowrap {
+ flex-wrap: nowrap;
+}
+
+.content-center {
+ align-content: center;
+}
+
+.content-start {
+ align-content: flex-start;
+}
+
+.content-end {
+ align-content: flex-end;
+}
+
+.content-between {
+ align-content: space-between;
+}
+
+.content-around {
+ align-content: space-around;
+}
+
+.content-evenly {
+ align-content: space-evenly;
+}
+
+.items-start {
+ align-items: flex-start;
+}
+
+.items-end {
+ align-items: flex-end;
+}
+
+.items-center {
+ align-items: center;
+}
+
+.items-baseline {
+ align-items: baseline;
+}
+
+.items-stretch {
+ align-items: stretch;
+}
+
+.justify-start {
+ justify-content: flex-start;
+}
+
+.justify-end {
+ justify-content: flex-end;
+}
+
+.justify-center {
+ justify-content: center;
+}
+
+.justify-between {
+ justify-content: space-between;
+}
+
+.justify-around {
+ justify-content: space-around;
+}
+
+.justify-evenly {
+ justify-content: space-evenly;
+}
+
+.justify-items-start {
+ justify-items: start;
+}
+
+.justify-items-end {
+ justify-items: end;
+}
+
+.justify-items-center {
+ justify-items: center;
+}
+
+.justify-items-stretch {
+ justify-items: stretch;
+}
+
+.self-auto {
+ align-self: auto;
+}
+
+.self-start {
+ align-self: flex-start;
+}
+
+.self-end {
+ align-self: flex-end;
+}
+
+.self-center {
+ align-self: center;
+}
+
+.self-stretch {
+ align-self: stretch;
+}
+
+.self-baseline {
+ align-self: baseline;
+}
+
+.justify-self-auto {
+ justify-self: auto;
+}
+
+.justify-self-start {
+ justify-self: start;
+}
+
+.justify-self-end {
+ justify-self: end;
+}
+
+.justify-self-center {
+ justify-self: center;
+}
+
+.justify-self-stretch {
+ justify-self: stretch;
+}
+
+.overflow-auto {
+ overflow: auto;
+}
+
+.overflow-hidden {
+ overflow: hidden;
+}
+
+.overflow-visible {
+ overflow: visible;
+}
+
+.overflow-scroll {
+ overflow: scroll;
+}
+
+.overflow-x-auto {
+ overflow-x: auto;
+}
+
+.overflow-y-auto {
+ overflow-y: auto;
+}
+
+.overflow-x-hidden {
+ overflow-x: hidden;
+}
+
+.overflow-y-hidden {
+ overflow-y: hidden;
+}
+
+.overflow-x-visible {
+ overflow-x: visible;
+}
+
+.overflow-y-visible {
+ overflow-y: visible;
+}
+
+.overflow-x-scroll {
+ overflow-x: scroll;
+}
+
+.overflow-y-scroll {
+ overflow-y: scroll;
+}
+.truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.overflow-ellipsis {
+ text-overflow: ellipsis;
+}
+
+.p-0 {
+ padding: 0px;
+}
+
+.p-1 {
+ padding: 0.25rem;
+}
+
+.p-2 {
+ padding: 0.5rem;
+}
+
+.p-3 {
+ padding: 0.75rem;
+}
+
+.p-4 {
+ padding: 1rem;
+}
+
+.p-5 {
+ padding: 1.25rem;
+}
+
+.p-6 {
+ padding: 1.5rem;
+}
+
+.p-7 {
+ padding: 1.75rem;
+}
+
+.p-8 {
+ padding: 2rem;
+}
+
+.p-9 {
+ padding: 2.25rem;
+}
+
+.p-10 {
+ padding: 2.5rem;
+}
+
+.p-11 {
+ padding: 2.75rem;
+}
+
+.p-12 {
+ padding: 3rem;
+}
+
+.p-14 {
+ padding: 3.5rem;
+}
+
+.p-16 {
+ padding: 4rem;
+}
+
+.p-20 {
+ padding: 5rem;
+}
+
+.p-24 {
+ padding: 6rem;
+}
+
+.p-28 {
+ padding: 7rem;
+}
+
+.p-32 {
+ padding: 8rem;
+}
+
+.p-36 {
+ padding: 9rem;
+}
+
+.p-40 {
+ padding: 10rem;
+}
+
+.p-44 {
+ padding: 11rem;
+}
+
+.p-48 {
+ padding: 12rem;
+}
+
+.p-52 {
+ padding: 13rem;
+}
+
+.p-56 {
+ padding: 14rem;
+}
+
+.p-60 {
+ padding: 15rem;
+}
+
+.p-64 {
+ padding: 16rem;
+}
+
+.p-72 {
+ padding: 18rem;
+}
+
+.p-80 {
+ padding: 20rem;
+}
+
+.p-96 {
+ padding: 24rem;
+}
+
+.p-px {
+ padding: 1px;
+}
+
+.p-0\.5 {
+ padding: 0.125rem;
+}
+
+.p-1\.5 {
+ padding: 0.375rem;
+}
+
+.p-2\.5 {
+ padding: 0.625rem;
+}
+
+.p-3\.5 {
+ padding: 0.875rem;
+}
+
+.px-0 {
+ padding-left: 0px;
+ padding-right: 0px;
+}
+
+.px-1 {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+}
+
+.px-2 {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+}
+
+.px-3 {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+}
+
+.px-4 {
+ padding-left: 1rem;
+ padding-right: 1rem;
+}
+
+.px-5 {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+}
+
+.px-6 {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+}
+
+.px-7 {
+ padding-left: 1.75rem;
+ padding-right: 1.75rem;
+}
+
+.px-8 {
+ padding-left: 2rem;
+ padding-right: 2rem;
+}
+
+.px-9 {
+ padding-left: 2.25rem;
+ padding-right: 2.25rem;
+}
+
+.px-10 {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+}
+
+.px-11 {
+ padding-left: 2.75rem;
+ padding-right: 2.75rem;
+}
+
+.px-12 {
+ padding-left: 3rem;
+ padding-right: 3rem;
+}
+
+.px-14 {
+ padding-left: 3.5rem;
+ padding-right: 3.5rem;
+}
+
+.px-16 {
+ padding-left: 4rem;
+ padding-right: 4rem;
+}
+
+.px-20 {
+ padding-left: 5rem;
+ padding-right: 5rem;
+}
+
+.px-24 {
+ padding-left: 6rem;
+ padding-right: 6rem;
+}
+
+.px-28 {
+ padding-left: 7rem;
+ padding-right: 7rem;
+}
+
+.px-32 {
+ padding-left: 8rem;
+ padding-right: 8rem;
+}
+
+.px-36 {
+ padding-left: 9rem;
+ padding-right: 9rem;
+}
+
+.px-40 {
+ padding-left: 10rem;
+ padding-right: 10rem;
+}
+
+.px-44 {
+ padding-left: 11rem;
+ padding-right: 11rem;
+}
+
+.px-48 {
+ padding-left: 12rem;
+ padding-right: 12rem;
+}
+
+.px-52 {
+ padding-left: 13rem;
+ padding-right: 13rem;
+}
+
+.px-56 {
+ padding-left: 14rem;
+ padding-right: 14rem;
+}
+
+.px-60 {
+ padding-left: 15rem;
+ padding-right: 15rem;
+}
+
+.px-64 {
+ padding-left: 16rem;
+ padding-right: 16rem;
+}
+
+.px-72 {
+ padding-left: 18rem;
+ padding-right: 18rem;
+}
+
+.px-80 {
+ padding-left: 20rem;
+ padding-right: 20rem;
+}
+
+.px-96 {
+ padding-left: 24rem;
+ padding-right: 24rem;
+}
+
+.px-px {
+ padding-left: 1px;
+ padding-right: 1px;
+}
+
+.px-0\.5 {
+ padding-left: 0.125rem;
+ padding-right: 0.125rem;
+}
+
+.px-1\.5 {
+ padding-left: 0.375rem;
+ padding-right: 0.375rem;
+}
+
+.px-2\.5 {
+ padding-left: 0.625rem;
+ padding-right: 0.625rem;
+}
+
+.px-3\.5 {
+ padding-left: 0.875rem;
+ padding-right: 0.875rem;
+}
+
+.py-0 {
+ padding-top: 0px;
+ padding-bottom: 0px;
+}
+
+.py-1 {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+}
+
+.py-2 {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.py-3 {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+}
+
+.py-4 {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+
+.py-5 {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+}
+
+.py-6 {
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+}
+
+.py-7 {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+}
+
+.py-8 {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+}
+
+.py-9 {
+ padding-top: 2.25rem;
+ padding-bottom: 2.25rem;
+}
+
+.py-10 {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+}
+
+.py-11 {
+ padding-top: 2.75rem;
+ padding-bottom: 2.75rem;
+}
+
+.py-12 {
+ padding-top: 3rem;
+ padding-bottom: 3rem;
+}
+
+.py-14 {
+ padding-top: 3.5rem;
+ padding-bottom: 3.5rem;
+}
+
+.py-16 {
+ padding-top: 4rem;
+ padding-bottom: 4rem;
+}
+
+.py-20 {
+ padding-top: 5rem;
+ padding-bottom: 5rem;
+}
+
+.py-24 {
+ padding-top: 6rem;
+ padding-bottom: 6rem;
+}
+
+.py-28 {
+ padding-top: 7rem;
+ padding-bottom: 7rem;
+}
+
+.py-32 {
+ padding-top: 8rem;
+ padding-bottom: 8rem;
+}
+
+.py-36 {
+ padding-top: 9rem;
+ padding-bottom: 9rem;
+}
+
+.py-40 {
+ padding-top: 10rem;
+ padding-bottom: 10rem;
+}
+
+.py-44 {
+ padding-top: 11rem;
+ padding-bottom: 11rem;
+}
+
+.py-48 {
+ padding-top: 12rem;
+ padding-bottom: 12rem;
+}
+
+.py-52 {
+ padding-top: 13rem;
+ padding-bottom: 13rem;
+}
+
+.py-56 {
+ padding-top: 14rem;
+ padding-bottom: 14rem;
+}
+
+.py-60 {
+ padding-top: 15rem;
+ padding-bottom: 15rem;
+}
+
+.py-64 {
+ padding-top: 16rem;
+ padding-bottom: 16rem;
+}
+
+.py-72 {
+ padding-top: 18rem;
+ padding-bottom: 18rem;
+}
+
+.py-80 {
+ padding-top: 20rem;
+ padding-bottom: 20rem;
+}
+
+.py-96 {
+ padding-top: 24rem;
+ padding-bottom: 24rem;
+}
+
+.py-px {
+ padding-top: 1px;
+ padding-bottom: 1px;
+}
+
+.py-0\.5 {
+ padding-top: 0.125rem;
+ padding-bottom: 0.125rem;
+}
+
+.py-1\.5 {
+ padding-top: 0.375rem;
+ padding-bottom: 0.375rem;
+}
+
+.py-2\.5 {
+ padding-top: 0.625rem;
+ padding-bottom: 0.625rem;
+}
+
+.py-3\.5 {
+ padding-top: 0.875rem;
+ padding-bottom: 0.875rem;
+}
+
+.pt-0 {
+ padding-top: 0px;
+}
+
+.pt-1 {
+ padding-top: 0.25rem;
+}
+
+.pt-2 {
+ padding-top: 0.5rem;
+}
+
+.pt-3 {
+ padding-top: 0.75rem;
+}
+
+.pt-4 {
+ padding-top: 1rem;
+}
+
+.pt-5 {
+ padding-top: 1.25rem;
+}
+
+.pt-6 {
+ padding-top: 1.5rem;
+}
+
+.pt-7 {
+ padding-top: 1.75rem;
+}
+
+.pt-8 {
+ padding-top: 2rem;
+}
+
+.pt-9 {
+ padding-top: 2.25rem;
+}
+
+.pt-10 {
+ padding-top: 2.5rem;
+}
+
+.pt-11 {
+ padding-top: 2.75rem;
+}
+
+.pt-12 {
+ padding-top: 3rem;
+}
+
+.pt-14 {
+ padding-top: 3.5rem;
+}
+
+.pt-16 {
+ padding-top: 4rem;
+}
+
+.pt-20 {
+ padding-top: 5rem;
+}
+
+.pt-24 {
+ padding-top: 6rem;
+}
+
+.pt-28 {
+ padding-top: 7rem;
+}
+
+.pt-32 {
+ padding-top: 8rem;
+}
+
+.pt-36 {
+ padding-top: 9rem;
+}
+
+.pt-40 {
+ padding-top: 10rem;
+}
+
+.pt-44 {
+ padding-top: 11rem;
+}
+
+.pt-48 {
+ padding-top: 12rem;
+}
+
+.pt-52 {
+ padding-top: 13rem;
+}
+
+.pt-56 {
+ padding-top: 14rem;
+}
+
+.pt-60 {
+ padding-top: 15rem;
+}
+
+.pt-64 {
+ padding-top: 16rem;
+}
+
+.pt-72 {
+ padding-top: 18rem;
+}
+
+.pt-80 {
+ padding-top: 20rem;
+}
+
+.pt-96 {
+ padding-top: 24rem;
+}
+
+.pt-px {
+ padding-top: 1px;
+}
+
+.pt-0\.5 {
+ padding-top: 0.125rem;
+}
+
+.pt-1\.5 {
+ padding-top: 0.375rem;
+}
+
+.pt-2\.5 {
+ padding-top: 0.625rem;
+}
+
+.pt-3\.5 {
+ padding-top: 0.875rem;
+}
+
+.pr-0 {
+ padding-right: 0px;
+}
+
+.pr-1 {
+ padding-right: 0.25rem;
+}
+
+.pr-2 {
+ padding-right: 0.5rem;
+}
+
+.pr-3 {
+ padding-right: 0.75rem;
+}
+
+.pr-4 {
+ padding-right: 1rem;
+}
+
+.pr-5 {
+ padding-right: 1.25rem;
+}
+
+.pr-6 {
+ padding-right: 1.5rem;
+}
+
+.pr-7 {
+ padding-right: 1.75rem;
+}
+
+.pr-8 {
+ padding-right: 2rem;
+}
+
+.pr-9 {
+ padding-right: 2.25rem;
+}
+
+.pr-10 {
+ padding-right: 2.5rem;
+}
+
+.pr-11 {
+ padding-right: 2.75rem;
+}
+
+.pr-12 {
+ padding-right: 3rem;
+}
+
+.pr-14 {
+ padding-right: 3.5rem;
+}
+
+.pr-16 {
+ padding-right: 4rem;
+}
+
+.pr-20 {
+ padding-right: 5rem;
+}
+
+.pr-24 {
+ padding-right: 6rem;
+}
+
+.pr-28 {
+ padding-right: 7rem;
+}
+
+.pr-32 {
+ padding-right: 8rem;
+}
+
+.pr-36 {
+ padding-right: 9rem;
+}
+
+.pr-40 {
+ padding-right: 10rem;
+}
+
+.pr-44 {
+ padding-right: 11rem;
+}
+
+.pr-48 {
+ padding-right: 12rem;
+}
+
+.pr-52 {
+ padding-right: 13rem;
+}
+
+.pr-56 {
+ padding-right: 14rem;
+}
+
+.pr-60 {
+ padding-right: 15rem;
+}
+
+.pr-64 {
+ padding-right: 16rem;
+}
+
+.pr-72 {
+ padding-right: 18rem;
+}
+
+.pr-80 {
+ padding-right: 20rem;
+}
+
+.pr-96 {
+ padding-right: 24rem;
+}
+
+.pr-px {
+ padding-right: 1px;
+}
+
+.pr-0\.5 {
+ padding-right: 0.125rem;
+}
+
+.pr-1\.5 {
+ padding-right: 0.375rem;
+}
+
+.pr-2\.5 {
+ padding-right: 0.625rem;
+}
+
+.pr-3\.5 {
+ padding-right: 0.875rem;
+}
+
+.pb-0 {
+ padding-bottom: 0px;
+}
+
+.pb-1 {
+ padding-bottom: 0.25rem;
+}
+
+.pb-2 {
+ padding-bottom: 0.5rem;
+}
+
+.pb-3 {
+ padding-bottom: 0.75rem;
+}
+
+.pb-4 {
+ padding-bottom: 1rem;
+}
+
+.pb-5 {
+ padding-bottom: 1.25rem;
+}
+
+.pb-6 {
+ padding-bottom: 1.5rem;
+}
+
+.pb-7 {
+ padding-bottom: 1.75rem;
+}
+
+.pb-8 {
+ padding-bottom: 2rem;
+}
+
+.pb-9 {
+ padding-bottom: 2.25rem;
+}
+
+.pb-10 {
+ padding-bottom: 2.5rem;
+}
+
+.pb-11 {
+ padding-bottom: 2.75rem;
+}
+
+.pb-12 {
+ padding-bottom: 3rem;
+}
+
+.pb-14 {
+ padding-bottom: 3.5rem;
+}
+
+.pb-16 {
+ padding-bottom: 4rem;
+}
+
+.pb-20 {
+ padding-bottom: 5rem;
+}
+
+.pb-24 {
+ padding-bottom: 6rem;
+}
+
+.pb-28 {
+ padding-bottom: 7rem;
+}
+
+.pb-32 {
+ padding-bottom: 8rem;
+}
+
+.pb-36 {
+ padding-bottom: 9rem;
+}
+
+.pb-40 {
+ padding-bottom: 10rem;
+}
+
+.pb-44 {
+ padding-bottom: 11rem;
+}
+
+.pb-48 {
+ padding-bottom: 12rem;
+}
+
+.pb-52 {
+ padding-bottom: 13rem;
+}
+
+.pb-56 {
+ padding-bottom: 14rem;
+}
+
+.pb-60 {
+ padding-bottom: 15rem;
+}
+
+.pb-64 {
+ padding-bottom: 16rem;
+}
+
+.pb-72 {
+ padding-bottom: 18rem;
+}
+
+.pb-80 {
+ padding-bottom: 20rem;
+}
+
+.pb-96 {
+ padding-bottom: 24rem;
+}
+
+.pb-px {
+ padding-bottom: 1px;
+}
+
+.pb-0\.5 {
+ padding-bottom: 0.125rem;
+}
+
+.pb-1\.5 {
+ padding-bottom: 0.375rem;
+}
+
+.pb-2\.5 {
+ padding-bottom: 0.625rem;
+}
+
+.pb-3\.5 {
+ padding-bottom: 0.875rem;
+}
+
+.pl-0 {
+ padding-left: 0px;
+}
+
+.pl-1 {
+ padding-left: 0.25rem;
+}
+
+.pl-2 {
+ padding-left: 0.5rem;
+}
+
+.pl-3 {
+ padding-left: 0.75rem;
+}
+
+.pl-4 {
+ padding-left: 1rem;
+}
+
+.pl-5 {
+ padding-left: 1.25rem;
+}
+
+.pl-6 {
+ padding-left: 1.5rem;
+}
+
+.pl-7 {
+ padding-left: 1.75rem;
+}
+
+.pl-8 {
+ padding-left: 2rem;
+}
+
+.pl-9 {
+ padding-left: 2.25rem;
+}
+
+.pl-10 {
+ padding-left: 2.5rem;
+}
+
+.pl-11 {
+ padding-left: 2.75rem;
+}
+
+.pl-12 {
+ padding-left: 3rem;
+}
+
+.pl-14 {
+ padding-left: 3.5rem;
+}
+
+.pl-16 {
+ padding-left: 4rem;
+}
+
+.pl-20 {
+ padding-left: 5rem;
+}
+
+.pl-24 {
+ padding-left: 6rem;
+}
+
+.pl-28 {
+ padding-left: 7rem;
+}
+
+.pl-32 {
+ padding-left: 8rem;
+}
+
+.pl-36 {
+ padding-left: 9rem;
+}
+
+.pl-40 {
+ padding-left: 10rem;
+}
+
+.pl-44 {
+ padding-left: 11rem;
+}
+
+.pl-48 {
+ padding-left: 12rem;
+}
+
+.pl-52 {
+ padding-left: 13rem;
+}
+
+.pl-56 {
+ padding-left: 14rem;
+}
+
+.pl-60 {
+ padding-left: 15rem;
+}
+
+.pl-64 {
+ padding-left: 16rem;
+}
+
+.pl-72 {
+ padding-left: 18rem;
+}
+
+.pl-80 {
+ padding-left: 20rem;
+}
+
+.pl-96 {
+ padding-left: 24rem;
+}
+
+.pl-px {
+ padding-left: 1px;
+}
+
+.pl-0\.5 {
+ padding-left: 0.125rem;
+}
+
+.pl-1\.5 {
+ padding-left: 0.375rem;
+}
+
+.pl-2\.5 {
+ padding-left: 0.625rem;
+}
+
+.pl-3\.5 {
+ padding-left: 0.875rem;
+}
+
+.text-left {
+ text-align: left;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.text-right {
+ text-align: right;
+}
+
+.text-justify {
+ text-align: justify;
+}
+
+.align-baseline {
+ vertical-align: baseline;
+}
+
+.align-top {
+ vertical-align: top;
+}
+
+.align-middle {
+ vertical-align: middle;
+}
+
+.align-bottom {
+ vertical-align: bottom;
+}
+
+.align-text-top {
+ vertical-align: text-top;
+}
+
+.align-text-bottom {
+ vertical-align: text-bottom;
+}
+
+.font-sans {
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans',
+ sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
+}
+
+.font-serif {
+ font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
+}
+
+.font-mono {
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
+}
+
+.text-xs {
+ font-size: 0.75rem;
+ line-height: 1rem;
+}
+
+.text-sm {
+ font-size: 0.875rem;
+ line-height: 1.25rem;
+}
+
+.text-base {
+ font-size: 1rem;
+ line-height: 1.5rem;
+}
+
+.text-lg {
+ font-size: 1.125rem;
+ line-height: 1.75rem;
+}
+
+.text-xl {
+ font-size: 1.25rem;
+ line-height: 1.75rem;
+}
+
+.text-2xl {
+ font-size: 1.5rem;
+ line-height: 2rem;
+}
+
+.text-3xl {
+ font-size: 1.875rem;
+ line-height: 2.25rem;
+}
+
+.text-4xl {
+ font-size: 2.25rem;
+ line-height: 2.5rem;
+}
+
+.text-5xl {
+ font-size: 3rem;
+ line-height: 1;
+}
+
+.text-6xl {
+ font-size: 3.75rem;
+ line-height: 1;
+}
+
+.text-7xl {
+ font-size: 4.5rem;
+ line-height: 1;
+}
+
+.text-8xl {
+ font-size: 6rem;
+ line-height: 1;
+}
+
+.text-9xl {
+ font-size: 8rem;
+ line-height: 1;
+}
+
+.font-thin {
+ font-weight: 100;
+}
+
+.font-extralight {
+ font-weight: 200;
+}
+
+.font-light {
+ font-weight: 300;
+}
+
+.font-normal {
+ font-weight: 400;
+}
+
+.font-medium {
+ font-weight: 500;
+}
+
+.font-semibold {
+ font-weight: 600;
+}
+
+.font-bold {
+ font-weight: 700;
+}
+
+.font-extrabold {
+ font-weight: 800;
+}
+
+.font-black {
+ font-weight: 900;
+}
+
+.uppercase {
+ text-transform: uppercase;
+}
+
+.lowercase {
+ text-transform: lowercase;
+}
+
+.capitalize {
+ text-transform: capitalize;
+}
+
+.normal-case {
+ text-transform: none;
+}
+
+.italic {
+ font-style: italic;
+}
+
+.not-italic {
+ font-style: normal;
+}
+
+.text-transparent {
+ color: transparent;
+}
+
+.text-current {
+ color: currentColor;
+}
+
+.text-black {
+ --tw-text-opacity: 1;
+ color: rgba(0, 0, 0, var(--tw-text-opacity));
+}
+
+.text-white {
+ --tw-text-opacity: 1;
+ color: rgba(255, 255, 255, var(--tw-text-opacity));
+}
+
+.text-gray-50 {
+ --tw-text-opacity: 1;
+ color: rgba(249, 250, 251, var(--tw-text-opacity));
+}
+
+.text-gray-100 {
+ --tw-text-opacity: 1;
+ color: rgba(243, 244, 246, var(--tw-text-opacity));
+}
+
+.text-gray-200 {
+ --tw-text-opacity: 1;
+ color: rgba(229, 231, 235, var(--tw-text-opacity));
+}
+
+.text-gray-300 {
+ --tw-text-opacity: 1;
+ color: rgba(209, 213, 219, var(--tw-text-opacity));
+}
+
+.text-gray-400 {
+ --tw-text-opacity: 1;
+ color: rgba(156, 163, 175, var(--tw-text-opacity));
+}
+
+.text-gray-500 {
+ --tw-text-opacity: 1;
+ color: rgba(107, 114, 128, var(--tw-text-opacity));
+}
+
+.text-gray-600 {
+ --tw-text-opacity: 1;
+ color: rgba(75, 85, 99, var(--tw-text-opacity));
+}
+
+.text-gray-700 {
+ --tw-text-opacity: 1;
+ color: rgba(55, 65, 81, var(--tw-text-opacity));
+}
+
+.text-gray-800 {
+ --tw-text-opacity: 1;
+ color: rgba(31, 41, 55, var(--tw-text-opacity));
+}
+
+.text-gray-900 {
+ --tw-text-opacity: 1;
+ color: rgba(17, 24, 39, var(--tw-text-opacity));
+}
+
+.text-red-50 {
+ --tw-text-opacity: 1;
+ color: rgba(254, 242, 242, var(--tw-text-opacity));
+}
+
+.text-red-100 {
+ --tw-text-opacity: 1;
+ color: rgba(254, 226, 226, var(--tw-text-opacity));
+}
+
+.text-red-200 {
+ --tw-text-opacity: 1;
+ color: rgba(254, 202, 202, var(--tw-text-opacity));
+}
+
+.text-red-300 {
+ --tw-text-opacity: 1;
+ color: rgba(252, 165, 165, var(--tw-text-opacity));
+}
+
+.text-red-400 {
+ --tw-text-opacity: 1;
+ color: rgba(248, 113, 113, var(--tw-text-opacity));
+}
+
+.text-red-500 {
+ --tw-text-opacity: 1;
+ color: rgba(239, 68, 68, var(--tw-text-opacity));
+}
+
+.text-red-600 {
+ --tw-text-opacity: 1;
+ color: rgba(220, 38, 38, var(--tw-text-opacity));
+}
+
+.text-red-700 {
+ --tw-text-opacity: 1;
+ color: rgba(185, 28, 28, var(--tw-text-opacity));
+}
+
+.text-red-800 {
+ --tw-text-opacity: 1;
+ color: rgba(153, 27, 27, var(--tw-text-opacity));
+}
+
+.text-red-900 {
+ --tw-text-opacity: 1;
+ color: rgba(127, 29, 29, var(--tw-text-opacity));
+}
+
+.text-yellow-50 {
+ --tw-text-opacity: 1;
+ color: rgba(255, 251, 235, var(--tw-text-opacity));
+}
+
+.text-yellow-100 {
+ --tw-text-opacity: 1;
+ color: rgba(254, 243, 199, var(--tw-text-opacity));
+}
+
+.text-yellow-200 {
+ --tw-text-opacity: 1;
+ color: rgba(253, 230, 138, var(--tw-text-opacity));
+}
+
+.text-yellow-300 {
+ --tw-text-opacity: 1;
+ color: rgba(252, 211, 77, var(--tw-text-opacity));
+}
+
+.text-yellow-400 {
+ --tw-text-opacity: 1;
+ color: rgba(251, 191, 36, var(--tw-text-opacity));
+}
+
+.text-yellow-500 {
+ --tw-text-opacity: 1;
+ color: rgba(245, 158, 11, var(--tw-text-opacity));
+}
+
+.text-yellow-600 {
+ --tw-text-opacity: 1;
+ color: rgba(217, 119, 6, var(--tw-text-opacity));
+}
+
+.text-yellow-700 {
+ --tw-text-opacity: 1;
+ color: rgba(180, 83, 9, var(--tw-text-opacity));
+}
+
+.text-yellow-800 {
+ --tw-text-opacity: 1;
+ color: rgba(146, 64, 14, var(--tw-text-opacity));
+}
+
+.text-yellow-900 {
+ --tw-text-opacity: 1;
+ color: rgba(120, 53, 15, var(--tw-text-opacity));
+}
+
+.text-green-50 {
+ --tw-text-opacity: 1;
+ color: rgba(236, 253, 245, var(--tw-text-opacity));
+}
+
+.text-green-100 {
+ --tw-text-opacity: 1;
+ color: rgba(209, 250, 229, var(--tw-text-opacity));
+}
+
+.text-green-200 {
+ --tw-text-opacity: 1;
+ color: rgba(167, 243, 208, var(--tw-text-opacity));
+}
+
+.text-green-300 {
+ --tw-text-opacity: 1;
+ color: rgba(110, 231, 183, var(--tw-text-opacity));
+}
+
+.text-green-400 {
+ --tw-text-opacity: 1;
+ color: rgba(52, 211, 153, var(--tw-text-opacity));
+}
+
+.text-green-500 {
+ --tw-text-opacity: 1;
+ color: rgba(16, 185, 129, var(--tw-text-opacity));
+}
+
+.text-green-600 {
+ --tw-text-opacity: 1;
+ color: rgba(5, 150, 105, var(--tw-text-opacity));
+}
+
+.text-green-700 {
+ --tw-text-opacity: 1;
+ color: rgba(4, 120, 87, var(--tw-text-opacity));
+}
+
+.text-green-800 {
+ --tw-text-opacity: 1;
+ color: rgba(6, 95, 70, var(--tw-text-opacity));
+}
+
+.text-green-900 {
+ --tw-text-opacity: 1;
+ color: rgba(6, 78, 59, var(--tw-text-opacity));
+}
+
+.text-blue-50 {
+ --tw-text-opacity: 1;
+ color: rgba(239, 246, 255, var(--tw-text-opacity));
+}
+
+.text-blue-100 {
+ --tw-text-opacity: 1;
+ color: rgba(219, 234, 254, var(--tw-text-opacity));
+}
+
+.text-blue-200 {
+ --tw-text-opacity: 1;
+ color: rgba(191, 219, 254, var(--tw-text-opacity));
+}
+
+.text-blue-300 {
+ --tw-text-opacity: 1;
+ color: rgba(147, 197, 253, var(--tw-text-opacity));
+}
+
+.text-blue-400 {
+ --tw-text-opacity: 1;
+ color: rgba(96, 165, 250, var(--tw-text-opacity));
+}
+
+.text-blue-500 {
+ --tw-text-opacity: 1;
+ color: rgba(59, 130, 246, var(--tw-text-opacity));
+}
+
+.text-blue-600 {
+ --tw-text-opacity: 1;
+ color: rgba(37, 99, 235, var(--tw-text-opacity));
+}
+
+.text-blue-700 {
+ --tw-text-opacity: 1;
+ color: rgba(29, 78, 216, var(--tw-text-opacity));
+}
+
+.text-blue-800 {
+ --tw-text-opacity: 1;
+ color: rgba(30, 64, 175, var(--tw-text-opacity));
+}
+
+.text-blue-900 {
+ --tw-text-opacity: 1;
+ color: rgba(30, 58, 138, var(--tw-text-opacity));
+}
+
+.text-indigo-50 {
+ --tw-text-opacity: 1;
+ color: rgba(238, 242, 255, var(--tw-text-opacity));
+}
+
+.text-indigo-100 {
+ --tw-text-opacity: 1;
+ color: rgba(224, 231, 255, var(--tw-text-opacity));
+}
+
+.text-indigo-200 {
+ --tw-text-opacity: 1;
+ color: rgba(199, 210, 254, var(--tw-text-opacity));
+}
+
+.text-indigo-300 {
+ --tw-text-opacity: 1;
+ color: rgba(165, 180, 252, var(--tw-text-opacity));
+}
+
+.text-indigo-400 {
+ --tw-text-opacity: 1;
+ color: rgba(129, 140, 248, var(--tw-text-opacity));
+}
+
+.text-indigo-500 {
+ --tw-text-opacity: 1;
+ color: rgba(99, 102, 241, var(--tw-text-opacity));
+}
+
+.text-indigo-600 {
+ --tw-text-opacity: 1;
+ color: rgba(79, 70, 229, var(--tw-text-opacity));
+}
+
+.text-indigo-700 {
+ --tw-text-opacity: 1;
+ color: rgba(67, 56, 202, var(--tw-text-opacity));
+}
+
+.text-indigo-800 {
+ --tw-text-opacity: 1;
+ color: rgba(55, 48, 163, var(--tw-text-opacity));
+}
+
+.text-indigo-900 {
+ --tw-text-opacity: 1;
+ color: rgba(49, 46, 129, var(--tw-text-opacity));
+}
+
+.text-purple-50 {
+ --tw-text-opacity: 1;
+ color: rgba(245, 243, 255, var(--tw-text-opacity));
+}
+
+.text-purple-100 {
+ --tw-text-opacity: 1;
+ color: rgba(237, 233, 254, var(--tw-text-opacity));
+}
+
+.text-purple-200 {
+ --tw-text-opacity: 1;
+ color: rgba(221, 214, 254, var(--tw-text-opacity));
+}
+
+.text-purple-300 {
+ --tw-text-opacity: 1;
+ color: rgba(196, 181, 253, var(--tw-text-opacity));
+}
+
+.text-purple-400 {
+ --tw-text-opacity: 1;
+ color: rgba(167, 139, 250, var(--tw-text-opacity));
+}
+
+.text-purple-500 {
+ --tw-text-opacity: 1;
+ color: rgba(139, 92, 246, var(--tw-text-opacity));
+}
+
+.text-purple-600 {
+ --tw-text-opacity: 1;
+ color: rgba(124, 58, 237, var(--tw-text-opacity));
+}
+
+.text-purple-700 {
+ --tw-text-opacity: 1;
+ color: rgba(109, 40, 217, var(--tw-text-opacity));
+}
+
+.text-purple-800 {
+ --tw-text-opacity: 1;
+ color: rgba(91, 33, 182, var(--tw-text-opacity));
+}
+
+.text-purple-900 {
+ --tw-text-opacity: 1;
+ color: rgba(76, 29, 149, var(--tw-text-opacity));
+}
+
+.text-pink-50 {
+ --tw-text-opacity: 1;
+ color: rgba(253, 242, 248, var(--tw-text-opacity));
+}
+
+.text-pink-100 {
+ --tw-text-opacity: 1;
+ color: rgba(252, 231, 243, var(--tw-text-opacity));
+}
+
+.text-pink-200 {
+ --tw-text-opacity: 1;
+ color: rgba(251, 207, 232, var(--tw-text-opacity));
+}
+
+.text-pink-300 {
+ --tw-text-opacity: 1;
+ color: rgba(249, 168, 212, var(--tw-text-opacity));
+}
+
+.text-pink-400 {
+ --tw-text-opacity: 1;
+ color: rgba(244, 114, 182, var(--tw-text-opacity));
+}
+
+.text-pink-500 {
+ --tw-text-opacity: 1;
+ color: rgba(236, 72, 153, var(--tw-text-opacity));
+}
+
+.text-pink-600 {
+ --tw-text-opacity: 1;
+ color: rgba(219, 39, 119, var(--tw-text-opacity));
+}
+
+.text-pink-700 {
+ --tw-text-opacity: 1;
+ color: rgba(190, 24, 93, var(--tw-text-opacity));
+}
+
+.text-pink-800 {
+ --tw-text-opacity: 1;
+ color: rgba(157, 23, 77, var(--tw-text-opacity));
+}
+
+.text-pink-900 {
+ --tw-text-opacity: 1;
+ color: rgba(131, 24, 67, var(--tw-text-opacity));
+}
+
+.opacity-0 {
+ opacity: 0;
+}
+
+.opacity-5 {
+ opacity: 0.05;
+}
+
+.opacity-10 {
+ opacity: 0.1;
+}
+
+.opacity-20 {
+ opacity: 0.2;
+}
+
+.opacity-25 {
+ opacity: 0.25;
+}
+
+.opacity-30 {
+ opacity: 0.3;
+}
+
+.opacity-40 {
+ opacity: 0.4;
+}
+
+.opacity-50 {
+ opacity: 0.5;
+}
+
+.opacity-60 {
+ opacity: 0.6;
+}
+
+.opacity-70 {
+ opacity: 0.7;
+}
+
+.opacity-75 {
+ opacity: 0.75;
+}
+
+.opacity-80 {
+ opacity: 0.8;
+}
+
+.opacity-90 {
+ opacity: 0.9;
+}
+
+.opacity-95 {
+ opacity: 0.95;
+}
+
+.opacity-100 {
+ opacity: 1;
+}
diff --git a/src/components/Globals/Globals.vue b/src/components/Globals/Globals.vue
deleted file mode 100644
index 6b25305..0000000
--- a/src/components/Globals/Globals.vue
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/Plugin/Plugin.vue b/src/components/Plugin/Plugin.vue
deleted file mode 100644
index 6136b8c..0000000
--- a/src/components/Plugin/Plugin.vue
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/Projects/Projects.vue b/src/components/Projects/Projects.vue
index 326ef55..268c4e5 100644
--- a/src/components/Projects/Projects.vue
+++ b/src/components/Projects/Projects.vue
@@ -49,7 +49,7 @@ export default {
openProject(project) {
const { name, id, url } = project;
url && (uni.$t.domain = url);
- this.$u.route('pages/project/project', {
+ this.$u.route('pages/project-webview/project-webview', {
u: this.userId,
p: id,
pname: name,
diff --git a/src/components/Roles/Roles.vue b/src/components/Roles/Roles.vue
deleted file mode 100644
index 699cc40..0000000
--- a/src/components/Roles/Roles.vue
+++ /dev/null
@@ -1,233 +0,0 @@
-
-
-
-
-
-
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/Skeleton/READ_ME.md b/src/components/Skeleton/READ_ME.md
deleted file mode 100644
index 09ccf28..0000000
--- a/src/components/Skeleton/READ_ME.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# skeleton组件
-
-### 1.描述
-> 此组件用于加载数据时占位图显示,跟vant-ui骨架屏用法相似,但比vant-ui更灵活
-
-
-
-### 2.用法
-
-- 基本用法
-
-代码:
-```vue
-//基本用法
-
-
- content
-
-
-```
-
-
-- **显示 title ——通过 **title 属性显示title占位图
-
-代码:
-```vue
-//显示 title——通过 title 属性显示title占位图
-
-
- content
-
-
-```
-
-
-- 显示头像(上面)——通过avatar=‘top’让头像的占位图上面显示
-
-代码:
-```vue
-
-
- content
-
-
-```
-
-
-- 显示头像(左边)——通过avatar=‘left’让头像的占位图左边显示
-
-代码:
-```vue
-
-
- content
-
-
-```
-
-
-- 显示banner**——通过 **banner属性显示banner占位图(只显示banner,不显示内容占位图时设置row="0")
-
-代码:
-```vue
-
-
- content
-
-
-```
-###
-### 3. API
-### Props
-| **属性名** | **说明** | **类型** | **默认值** | 可取值 |
-| --- | --- | --- | --- | --- |
-| loading | 是否显示骨架屏 | Boolean | true | true/false |
-| row | 段落行数 | Number | String | 3 | 0表示不展现 |
-| rowWidth | 段落行宽度 | Boolean | Number | '100%' | |
-| title | 是否显示标题 | Boolean | String | false | |
-| banner | 是否显示banner | Boolean | String | false | |
-| animate | 是否开启动画 | Boolean | String | false | |
-| avatar | 头像位置 | Boolean | String | ''空 | left/top |
-| avatarSize | 头像大小 | String | - | |
-| avatarShape | 头像形状 | String | circle | circle/round |
-
diff --git a/src/components/Skeleton/Skeleton.vue b/src/components/Skeleton/Skeleton.vue
deleted file mode 100644
index 6be25bb..0000000
--- a/src/components/Skeleton/Skeleton.vue
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/TimeLine/TimeLine.vue b/src/components/TimeLine/TimeLine.vue
deleted file mode 100644
index efcc1ff..0000000
--- a/src/components/TimeLine/TimeLine.vue
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/TimeLine/component/Barrier.vue b/src/components/TimeLine/component/Barrier.vue
deleted file mode 100644
index 590e4f9..0000000
--- a/src/components/TimeLine/component/Barrier.vue
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
- 2021年30周
-
-
-
-
-
diff --git a/src/components/TimeLine/component/TaskTools.vue b/src/components/TimeLine/component/TaskTools.vue
deleted file mode 100644
index 11eb964..0000000
--- a/src/components/TimeLine/component/TaskTools.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/components/TimeLine/component/TimeBox.vue b/src/components/TimeLine/component/TimeBox.vue
deleted file mode 100644
index 587a3a2..0000000
--- a/src/components/TimeLine/component/TimeBox.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
-
-
-
-
- {{ $moment(+task.planStart).format(startTimeFormat) }}
- {{ $moment(+task.planStart).format('D日') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/TimeLine/component/TimeStatus.vue b/src/components/TimeLine/component/TimeStatus.vue
deleted file mode 100644
index d595e16..0000000
--- a/src/components/TimeLine/component/TimeStatus.vue
+++ /dev/null
@@ -1,211 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ computeDurationText() }}
-
-
-
-
-
-
-
-
-
-
-
-
- {{ computeDurationText() }}
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/TimeLine/component/Title.vue b/src/components/TimeLine/component/Title.vue
deleted file mode 100644
index fafec0b..0000000
--- a/src/components/TimeLine/component/Title.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/src/components/Tips/Tips.vue b/src/components/Tips/Tips.vue
deleted file mode 100644
index b485f10..0000000
--- a/src/components/Tips/Tips.vue
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
- {{ tip.text }}
-
- 取消
- 暂停
- 继续
- 重新开始
- 结束
- 确定
-
-
-
-
-
-
diff --git a/src/components/Title/Title.vue b/src/components/Title/Title.vue
deleted file mode 100644
index 0cfa13d..0000000
--- a/src/components/Title/Title.vue
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
- {{ project.name }}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/config/db.js b/src/config/db.js
deleted file mode 100644
index 2f0d965..0000000
--- a/src/config/db.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export const db = null; // indexedDB 对象
-export const name = 'TALL_indexedDB'; // indexDB name
-export const version = 1; // indexDB version
diff --git a/src/config/plugin.js b/src/config/plugin.js
deleted file mode 100644
index a12856b..0000000
--- a/src/config/plugin.js
+++ /dev/null
@@ -1,97 +0,0 @@
-// 定义插件相关信息
-/* eslint-disable */
-export default {
- defaults: [
- {
- id: 1,
- name: 'TASK_NAME',
- description: '任务名插件',
- component: 'p-task-title',
- },
- {
- id: 2,
- name: 'TASK_DESCRIPTION',
- description: '任务描述插件',
- component: 'p-task-description',
- },
- {
- id: 3,
- name: 'TASK_DURATION_DELAY',
- description: '任务时长延迟插件(+-1min)时间格式可设置',
- component: 'p-task-duration-delay',
- },
- {
- id: 4,
- name: 'TASK_START_TIME_DELAY',
- description: '任务开始时间延迟插件(+-1hour)',
- component: 'p-task-start-time-delay',
- },
- {
- id: 5,
- name: 'DELIVERABLE',
- description: '交付物插件(人 + 交付物)可配置【仅人】 or 【仅交付物】 or 【人+交付物】',
- component: 'p-deliverable',
- },
- {
- id: 6,
- name: 'SUBTASKS',
- description: '子任务插件:显示子任务',
- component: 'p-subtasks',
- },
- {
- id: 7,
- name: 'SUB_PROJECT',
- description: '子项目插件:显示子项目',
- component: 'p-sub-project',
- },
- {
- id: 8,
- name: 'TASK_COUNTDOWN',
- description: '任务倒计时插件',
- component: 'p-task-countdown',
- },
- {
- id: 9,
- name: 'MANAGE_PROJECT',
- description: '项目信息管理插件',
- component: 'p-manage-project',
- },
-
- {
- id: 10,
- name: 'MANAGE_ROLE',
- description: '角色信息管理插件',
- component: 'p-manage-role',
- },
- {
- id: 11,
- name: 'MANAGE_MEMBER',
- description: '成员信息管理插件',
- component: 'p-manage-member',
- },
- {
- id: 12,
- name: 'MANAGE_TASK',
- description: '任务信息管理插件',
- component: 'p-manage-task',
- },
- {
- id: 13,
- name: 'WBS_IMPORT',
- description: '导入WBS新建项目',
- component: 'p-wbs-import',
- },
- {
- id: 14,
- name: 'WBS_IMPORT_UPDATE',
- description: '导入WBS更新项目',
- component: 'p-wbs-update',
- },
- {
- id: 15,
- name: 'DELIVER_CHECK',
- description: '交付物检查',
- component: 'p-deliver-check',
- },
- ], // 默认插件id列表
-};
diff --git a/src/config/time.js b/src/config/time.js
deleted file mode 100644
index 27e412e..0000000
--- a/src/config/time.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export default {
- timeUnits: [
- // 时间颗粒度
- { id: 0, value: '毫秒', format: 'x', cycle: 'YY-M-D HH:mm:ss', granularity: 'millisecond' },
- { id: 1, value: '秒', format: 'x', cycle: 'YY-M-D HH:mm:ss', granularity: 'second' },
- { id: 2, value: '分', format: 'ss', cycle: 'YY-M-D HH:mm', granularity: 'minute' },
- { id: 3, value: '时', format: 'mm', cycle: 'YY-M-D HH时', granularity: 'hour' },
- { id: 4, value: '天', format: 'D日 HH:mm', cycle: 'YY-M-D', granularity: 'day' },
- { id: 5, value: '周', format: 'D日 HH:mm', cycle: '', granularity: 'week' },
- { id: 6, value: '月', format: 'D日 H:m', cycle: 'YYYY年', granularity: 'month' },
- { id: 7, value: '季度', format: '', cycle: 'YYYY年', granularity: 'quarter' },
- { id: 8, value: '年', format: 'YYYY', cycle: '', granularity: 'year' },
- { id: 9, value: '年代', format: '', cycle: '', granularity: '' },
- { id: 10, value: '世纪', format: '', cycle: '', granularity: '' },
- { id: 11, value: '千年', format: '', cycle: '', granularity: '' },
- ],
-};
diff --git a/src/main.js b/src/main.js
index b887267..6c35177 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,16 +1,10 @@
-import './common/styles/index.css';
-
import App from './App';
import Tall from '@/utils/tall';
import Vue from 'vue';
import dayjs from 'dayjs';
-import plugin from '@/apis/plugin.js';
-import project from '@/apis/project.js';
import request from '@/utils/request.js';
-import role from '@/apis/role.js';
import store from './store';
import tall from '@/apis/tall.js';
-import task from '@/apis/task.js';
import uView from 'uview-ui';
import wbs from '@/apis/wbs.js';
@@ -39,10 +33,6 @@ const app = new Vue({ ...App, store });
Vue.use(request, app);
Vue.use(tall, app);
-Vue.use(project, app);
-Vue.use(task, app);
-Vue.use(plugin, app);
-Vue.use(role, app);
Vue.use(wbs, app);
app.$mount();
diff --git a/src/mixins/timeline.js b/src/mixins/timeline.js
deleted file mode 100644
index b61c46a..0000000
--- a/src/mixins/timeline.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { mapGetters } from 'vuex';
-
-const mixin = {
- computed: mapGetters('task', ['timeGranularity']),
-
- methods: {
- /**
- * 设置时间轴空数据
- * @param {*} startTime
- * @param {*} show true 向上加载,false 向下加载
- */
- setTime(startTime, show) {
- let { timeGranularity } = this;
- let arr = [];
- let str = {};
- if (show) {
- for (let i = 10; i > 0; i--) {
- str = {
- id: this.$u.guid(20, false, 10),
- panel: {},
- plugins: [],
- process: 4,
- planStart: this.$t.time.add(startTime, `-${i}` - 0, timeGranularity).valueOf(),
- };
- arr.push(str);
- }
- } else {
- for (let i = 0; i < 10; i++) {
- str = {
- id: this.$u.guid(20, false, 10),
- panel: {},
- plugins: [],
- process: 4,
- planStart: this.$t.time.add(startTime, i + 1, timeGranularity).valueOf(),
- };
- arr.push(str);
- }
- }
- return arr;
- },
- },
-};
-
-export default mixin;
diff --git a/src/pages.json b/src/pages.json
index cb0c667..2226077 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -6,13 +6,6 @@
"navigationBarText": "TALL"
}
},
- {
- "path": "pages/project/project",
- "style": {
- "navigationStyle": "custom",
- "navigationBarTextStyle": "white"
- }
- },
{
"path": "pages/phone-bind/phone-bind",
"style": {
@@ -22,7 +15,8 @@
{
"path": "pages/project-webview/project-webview",
"style": {
- "navigationBarTitleText": "project-webview"
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "项目详情页"
}
}
],
diff --git a/src/pages/project-webview/project-webview.vue b/src/pages/project-webview/project-webview.vue
index 08af3bd..1a13a8b 100644
--- a/src/pages/project-webview/project-webview.vue
+++ b/src/pages/project-webview/project-webview.vue
@@ -1,11 +1,34 @@
-
+
diff --git a/src/pages/project/project.vue b/src/pages/project/project.vue
deleted file mode 100644
index fbffcd6..0000000
--- a/src/pages/project/project.vue
+++ /dev/null
@@ -1,376 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/pages/test/test.vue b/src/pages/test/test.vue
deleted file mode 100644
index 5ec1fc1..0000000
--- a/src/pages/test/test.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
- add
- findOne
- find
- 更新update
- 删除remove
- 创建索引和查询
-
-
-
-
diff --git a/src/plugins/p-deliver-check/p-deliver-check.vue b/src/plugins/p-deliver-check/p-deliver-check.vue
deleted file mode 100644
index 6518d8f..0000000
--- a/src/plugins/p-deliver-check/p-deliver-check.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
- 交付物检查
-
-
-
diff --git a/src/plugins/p-deliverable/p-deliverable.vue b/src/plugins/p-deliverable/p-deliverable.vue
deleted file mode 100644
index 9e186ea..0000000
--- a/src/plugins/p-deliverable/p-deliverable.vue
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
- 交付物
-
-
-
-
-
diff --git a/src/plugins/p-manage-member/p-manage-member.vue b/src/plugins/p-manage-member/p-manage-member.vue
deleted file mode 100644
index e287a04..0000000
--- a/src/plugins/p-manage-member/p-manage-member.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
- 成员管理
-
-
-
diff --git a/src/plugins/p-manage-project/p-manage-project.vue b/src/plugins/p-manage-project/p-manage-project.vue
deleted file mode 100644
index ceb9371..0000000
--- a/src/plugins/p-manage-project/p-manage-project.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
- 项目管理
-
-
-
diff --git a/src/plugins/p-manage-role/p-manage-role.vue b/src/plugins/p-manage-role/p-manage-role.vue
deleted file mode 100644
index 5eda40d..0000000
--- a/src/plugins/p-manage-role/p-manage-role.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
- 角色管理
-
-
-
diff --git a/src/plugins/p-manage-task/p-manage-task.vue b/src/plugins/p-manage-task/p-manage-task.vue
deleted file mode 100644
index 21d53f8..0000000
--- a/src/plugins/p-manage-task/p-manage-task.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
- 任务管理
-
-
-
diff --git a/src/plugins/p-subproject/p-subproject.vue b/src/plugins/p-subproject/p-subproject.vue
deleted file mode 100644
index 602ccd8..0000000
--- a/src/plugins/p-subproject/p-subproject.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
- {{ item.name }}
-
-
-
-
-
-
-
diff --git a/src/plugins/p-subtasks/p-subtasks.vue b/src/plugins/p-subtasks/p-subtasks.vue
deleted file mode 100644
index 8e55858..0000000
--- a/src/plugins/p-subtasks/p-subtasks.vue
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- {{ item.name }}
-
-
-
-
-
-
-
diff --git a/src/plugins/p-task-countdown/p-task-countdown.vue b/src/plugins/p-task-countdown/p-task-countdown.vue
deleted file mode 100644
index f55572d..0000000
--- a/src/plugins/p-task-countdown/p-task-countdown.vue
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
- 任务倒计时插件
-
-
-
-
-
diff --git a/src/plugins/p-task-description/p-task-description.vue b/src/plugins/p-task-description/p-task-description.vue
deleted file mode 100644
index e7db68f..0000000
--- a/src/plugins/p-task-description/p-task-description.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- {{ task.description }}
-
-
-
diff --git a/src/plugins/p-task-duration-delay/p-task-duration-delay.vue b/src/plugins/p-task-duration-delay/p-task-duration-delay.vue
deleted file mode 100644
index f435676..0000000
--- a/src/plugins/p-task-duration-delay/p-task-duration-delay.vue
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
- +{{ $t.time.formatDuration(realDuration - planDuration) }}
-
-
-
- -{{ $t.time.formatDuration(planDuration - realDuration) }}
-
-
-
-
-
diff --git a/src/plugins/p-task-start-time-delay/p-task-start-time-delay.vue b/src/plugins/p-task-start-time-delay/p-task-start-time-delay.vue
deleted file mode 100644
index b978cef..0000000
--- a/src/plugins/p-task-start-time-delay/p-task-start-time-delay.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- {{ $t.time.formatDuration(+realStart - +planStart) }}
-
-
-
-
diff --git a/src/plugins/p-task-title/p-task-title.vue b/src/plugins/p-task-title/p-task-title.vue
deleted file mode 100644
index dde14d0..0000000
--- a/src/plugins/p-task-title/p-task-title.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- {{ task.name }}
-
-
-
diff --git a/src/plugins/p-wbs-import/p-wbs-import.vue b/src/plugins/p-wbs-import/p-wbs-import.vue
deleted file mode 100644
index 3ca0ab6..0000000
--- a/src/plugins/p-wbs-import/p-wbs-import.vue
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
- {{ task.name }}
- {{ task.name }}
-
-
-
-
-
-
diff --git a/src/static/local_play1.png b/src/static/local_play1.png
deleted file mode 100644
index bb6ac2c..0000000
Binary files a/src/static/local_play1.png and /dev/null differ
diff --git a/src/static/logo.png b/src/static/logo.png
deleted file mode 100644
index b5771e2..0000000
Binary files a/src/static/logo.png and /dev/null differ
diff --git a/src/store/db/actions.js b/src/store/db/actions.js
deleted file mode 100644
index 5dfa3d4..0000000
--- a/src/store/db/actions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const actions = {};
-
-export default actions;
diff --git a/src/store/db/getters.js b/src/store/db/getters.js
deleted file mode 100644
index 56c8c75..0000000
--- a/src/store/db/getters.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const getters = {};
-
-export default getters;
diff --git a/src/store/db/index.js b/src/store/db/index.js
deleted file mode 100644
index d22f64a..0000000
--- a/src/store/db/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import state from './state';
-import getters from './getters';
-import mutations from './mutations';
-import actions from './actions';
-
-export default {
- namespaced: true,
- state,
- getters,
- mutations,
- actions,
-};
diff --git a/src/store/db/mutations.js b/src/store/db/mutations.js
deleted file mode 100644
index ea2bcc2..0000000
--- a/src/store/db/mutations.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const mutations = {};
-
-export default mutations;
diff --git a/src/store/db/state.js b/src/store/db/state.js
deleted file mode 100644
index 51d33c8..0000000
--- a/src/store/db/state.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const state = {
- db: null, // indexedDB对象
- name: 'TALL_indexedDB',
- version: 1,
-};
-
-export default state;
diff --git a/src/store/index.js b/src/store/index.js
index 2a18ac1..974c94c 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1,12 +1,9 @@
import Vue from 'vue';
import Vuex from 'vuex';
-import db from './db/index';
-import user from './user/index';
import messages from './messages/index';
-import socket from './socket/index';
import project from './project/index';
-import role from './role/index';
-import task from './task/index';
+import socket from './socket/index';
+import user from './user/index';
Vue.use(Vuex);
-export default new Vuex.Store({ modules: { db, user, messages, socket, project, role, task } });
+export default new Vuex.Store({ modules: { user, messages, socket, project } });
diff --git a/src/store/role/actions.js b/src/store/role/actions.js
deleted file mode 100644
index 5dfa3d4..0000000
--- a/src/store/role/actions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const actions = {};
-
-export default actions;
diff --git a/src/store/role/getters.js b/src/store/role/getters.js
deleted file mode 100644
index 56c8c75..0000000
--- a/src/store/role/getters.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const getters = {};
-
-export default getters;
diff --git a/src/store/role/index.js b/src/store/role/index.js
deleted file mode 100644
index d22f64a..0000000
--- a/src/store/role/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import state from './state';
-import getters from './getters';
-import mutations from './mutations';
-import actions from './actions';
-
-export default {
- namespaced: true,
- state,
- getters,
- mutations,
- actions,
-};
diff --git a/src/store/role/mutations.js b/src/store/role/mutations.js
deleted file mode 100644
index 7593f1b..0000000
--- a/src/store/role/mutations.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const mutations = {
- /**
- * 设置不展示的角色信息
- * @param {Object} state
- * @param {Array} data 服务端返回的模板数组
- */
- setInvisibleRoles(state, data) {
- state.invisibleRoles = data || [];
- },
-
- /**
- * 设置展示的角色信息
- * @param {Object} state
- * @param {Array} data 服务端返回的模板数组
- */
- setVisibleRoles(state, data) {
- state.visibleRoles = data || [];
- },
-
- /**
- * 设置当前角色信息
- * @param {Object} state
- * @param {string} roleId 当前正在展示的角色的id
- */
- setRoleId(state, roleId) {
- state.roleId = roleId;
- },
-};
-
-export default mutations;
diff --git a/src/store/role/state.js b/src/store/role/state.js
deleted file mode 100644
index 31b5774..0000000
--- a/src/store/role/state.js
+++ /dev/null
@@ -1,7 +0,0 @@
-const state = {
- invisibleRoles: [], // 不展示的角色信息
- visibleRoles: [], // 展示的角色信息
- roleId: '', // 当前展示查看的角色id
-};
-
-export default state;
diff --git a/src/store/task/actions.js b/src/store/task/actions.js
deleted file mode 100644
index 40cdb31..0000000
--- a/src/store/task/actions.js
+++ /dev/null
@@ -1,33 +0,0 @@
-const actions = {
- /**
- * 根据角色查找永久的日常任务
- * @param {*} commit
- * @param {string} roleId 角色id
- */
- getPermanent({ commit }, param) {
- uni.$t.$q.getPermanent(param, (err, data) => {
- if (err) {
- console.error('err: ', err);
- } else {
- commit('setPermanents', data);
- }
- });
- },
-
- /**
- * 根据时间和角色查找日常任务
- * @param {*} commit
- * @param {object} param 请求参数 roleId, timeNode, timeUnit
- */
- getGlobal({ commit }, param) {
- uni.$t.$q.getGlobal(param, (err, data) => {
- if (err) {
- console.error('err: ', err);
- } else {
- commit('setDailyTasks', data);
- }
- });
- },
-};
-
-export default actions;
diff --git a/src/store/task/getters.js b/src/store/task/getters.js
deleted file mode 100644
index dcd7982..0000000
--- a/src/store/task/getters.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const getters = {
- // 所有的日常任务 永久 + 可变 日常任务
- globals({ dailyTasks, permanents }) {
- return [...permanents, ...dailyTasks];
- },
-
- unitConfig({ timeUnit }) {
- const target = uni.$t.timeConfig.timeUnits.find(item => item.id === timeUnit);
- return target;
- },
-
- // 计算任务开始时间的格式
- startTimeFormat(state, { unitConfig }) {
- return unitConfig.format || 'D日 HH:mm';
- },
-
- // 计算颗粒度 对应的 dayjs add 的单位
- timeGranularity(state, { unitConfig }) {
- return unitConfig.granularity;
- },
-};
-
-export default getters;
diff --git a/src/store/task/index.js b/src/store/task/index.js
deleted file mode 100644
index d22f64a..0000000
--- a/src/store/task/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import state from './state';
-import getters from './getters';
-import mutations from './mutations';
-import actions from './actions';
-
-export default {
- namespaced: true,
- state,
- getters,
- mutations,
- actions,
-};
diff --git a/src/store/task/mutations.js b/src/store/task/mutations.js
deleted file mode 100644
index e644faa..0000000
--- a/src/store/task/mutations.js
+++ /dev/null
@@ -1,168 +0,0 @@
-const mutations = {
- /**
- * 记录时间轴向上滚动的距离
- * @param { object } state
- * @param { number } num
- */
- setScrollTop(state, num) {
- state.scrollTop = num;
- },
-
- /**
- * 记录时间轴向上滚动的距离
- * @param { object } state
- * @param { string } data
- */
- setViewId(state, data) {
- state.viewId = data;
- },
-
- /**
- * 设置日常任务当前是否应该处于收缩状态
- * @param { object } state
- * @param { boolean } data
- */
- setShrink(state, data) {
- state.isShrink = data;
- },
-
- /**
- * 设置tip的值
- * @param {object} state
- * @param {object} data
- */
- setTip(state, data) {
- if (!data) return;
- state.tip = { ...data };
- },
-
- /**
- * 是否显示tips
- * @param { object } state
- * @param { boolean } show
- */
- setTipShow(state, show) {
- state.tip.show = show;
- },
-
- /**
- * 是否显示tips
- * @param { object } state
- * @param { number } status
- */
- setStatus(state, status) {
- state.tip.status = status;
- },
-
- /**
- * 设置时间基准点
- * @param { object } state
- * @param { number } data
- */
- setTimeNode(state, data) {
- state.timeNode = data;
- },
-
- /**
- * 设置时间颗粒度
- * @param { object } state
- * @param { number } data
- */
- setTimeUnit(state, data) {
- state.timeUnit = data;
- },
-
- /**
- * 设置向上查到的定期任务数据
- * @param {Object} state
- * @param {Array} data 服务端返回的模板数组
- */
- setUpTasks(state, data) {
- if (!state.tasks.length) {
- state.tasks = [...data];
- } else {
- state.tasks = [...data.concat(state.tasks)];
- }
- },
-
- /**
- * 设置向下查到的定期任务数据
- * @param {Object} state
- * @param {Array} data 服务端返回的模板数组
- */
- setDownTasks(state, data) {
- if (!state.tasks && !state.tasks.length) {
- state.tasks = [...data];
- } else {
- state.tasks = [...state.tasks.concat(data)];
- }
- },
-
- /**
- * 设置日常任务数据
- * @param {Object} state
- * @param {Array} data 服务端返回的模板数组
- */
- setDailyTasks(state, data) {
- state.dailyTasks = data || [];
- },
-
- /**
- * 设置永久固定任务
- * @param {object} state
- * @param {array} tasks 服务端查询到的永久日常任务书籍
- */
- setPermanents(state, tasks) {
- state.permanents = tasks || [];
- },
-
- /**
- * 设置时间轴是否继续向上查任务
- * @param {Object} state
- * @param {Boolean} show
- */
- setTopEnd(state, show) {
- state.topEnd = show;
- },
-
- /**
- * 设置时间轴是否继续向下查任务
- * @param {Object} state
- * @param {Boolean} show
- */
- setBottomEnd(state, show) {
- state.bottomEnd = show;
- },
-
- // 清空标志位 如切换角色等使用
- clearEndFlag(state) {
- state.topEnd = false;
- state.bottomEnd = false;
- },
-
- // 清空定期任务
- clearTasks(state) {
- state.tasks = [];
- },
-
- /**
- * 收到消息设置任务状态
- * @param {Object} state
- * @param {Array} data 服务端返回的模板数组
- */
- setTaskStatus(state, data) {
- const item = state.tasks.find(i => i.id === data.id);
- item.process = data.taskStatus;
- },
-
- /**
- * 设置骨架屏是否显示
- * @param {Object} state
- * @param {Boolean} show
- */
- setShowSkeleton(state, show) {
- state.showSkeleton = show;
- },
-};
-
-export default mutations;
diff --git a/src/store/task/state.js b/src/store/task/state.js
deleted file mode 100644
index a4b4fab..0000000
--- a/src/store/task/state.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const state = {
- scrollTop: 0,
- viewId: '', // 时间轴自动滚动的位置
- isShrink: false, // true: 收起, false:展开
- tip: {
- taskId: '', // 当前正在修改状态的任务的id
- show: false,
- status: 0, // 所点击任务的当前状态码
- text: '',
- left: 0, // 鼠标点击位置距离左边的距离
- top: 0, // 鼠标点击位置距离上边的距离
- },
- timeNode: new Date().getTime(), // 时间基准点
- timeUnit: 4, // 时间颗粒度
- topEnd: false, // 时间轴向上查任务到顶了
- bottomEnd: false, // 时间轴向下查任务到底了
- permanents: [], // 永久日常任务
- dailyTasks: [], // 日常任务
- tasks: [], // 所有的定期任务
- showSkeleton: false, // 定期任务骨架屏
-};
-
-export default state;
diff --git a/src/test/util/time.test.js b/src/test/util/time.test.js
deleted file mode 100644
index 11e64b2..0000000
--- a/src/test/util/time.test.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import Time from '../../utils/time.js';
-
-// 测试计算进行中剩余时长显示数值
-describe('utils/time.js computeDurationText function', () => {
- const { computeDurationText } = Time;
- // const leftTime = +realStart + +planDuration - Date.now(); // 剩余时间
- it ('leftTime is 60ms, num=60, time=16', () => {
- expect(computeDurationText(60)).toEqual({ num: 60, time: 16 })
- })
-
- it ('leftTime is 300ms, num=300, time=16', () => {
- expect(computeDurationText(300)).toEqual({ num: 300, time: 16 })
- })
-
- it ('leftTime is 10s20ms, num=10, time=1000', () => {
- expect(computeDurationText(10*1000 + 20)).toEqual({ num: 10, time: 1000 })
- })
-
- it ('leftTime is 8分钟10s20ms, num=8, time=1000', () => {
- expect(computeDurationText(8*60*1000 + 10*1000 + 20)).toEqual({ num: 8, time: 1000 })
- })
-
- it ('leftTime is 3小时8分钟10s20ms, num=3, time=1000', () => {
- expect(computeDurationText(3*60*60*1000 + 8*60*1000 + 10*1000 + 20)).toEqual({ num: 3, time: 1000 })
- })
-
- it ('leftTime is 11天3小时8分钟10s20ms, num=11, time=60 * 60 * 1000', () => {
- expect(computeDurationText(11*24*60*60*1000 + 3*60*60*1000 + 8*60*1000 + 10*1000 + 20)).toEqual({ num: 11, time: 60 * 60 * 1000 })
- })
-
- it ('leftTime is 2个月11天3小时8分钟10s20ms, num=2, time=60 * 60 * 1000', () => {
- expect(computeDurationText(2*30*24*60*60*1000 + 11*24*60*60*1000 + 3*60*60*1000 + 8*60*1000 + 10*1000 + 20)).toEqual({ num: 2, time: 60 * 60 * 1000 })
- })
-
- it ('leftTime is 7年2个月11天3小时8分钟10s20ms, num=7, time=60 * 60 * 1000', () => {
- expect(computeDurationText(7*12*30*24*60*60*1000 + 2*30*24*60*60*1000 + 11*24*60*60*1000 + 3*60*60*1000 + 8*60*1000 + 10*1000 + 20)).toEqual({ num: 7, time: 60 * 60 * 1000 })
- })
-
- it ('leftTime <=0, num=0, time=null', () => {
- expect(computeDurationText(-10)).toEqual({ num: 0, time: null })
- })
-
- it ('leftTime 不是数字, num=0, time=null', () => {
- expect(computeDurationText('abc')).toEqual({ num: 0, time: null })
- })
-})
diff --git a/src/uni.scss b/src/uni.scss
index 0a86a65..cf66c08 100644
--- a/src/uni.scss
+++ b/src/uni.scss
@@ -12,10 +12,8 @@
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
@import 'uview-ui/theme.scss';
-
-/* 颜色变量 */
-
-/* 行为相关颜色 */
+@import './common/styles/tailwind.scss';
+/* 颜色变量 */ /* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
diff --git a/src/utils/indexedDB.js b/src/utils/indexedDB.js
deleted file mode 100644
index 30a0e90..0000000
--- a/src/utils/indexedDB.js
+++ /dev/null
@@ -1,163 +0,0 @@
-import { name } from '@/config/db';
-import { curry } from 'lodash';
-
-// 创建表
-const createCollection = (Vue, db) => {
- // projects项目表
- !db.objectStoreNames.contains('projects') && db.createObjectStore('projects', { keyPath: 'id' });
- // roles 角色表
- !db.objectStoreNames.contains('roles') && db.createObjectStore('roles', { keyPath: 'id' });
- // plan_tasks 定期任务
- !db.objectStoreNames.contains('plan_tasks') && db.createObjectStore('plan_tasks', { keyPath: 'id' });
- // fixed_tasks 固定全局任务
- Vue.prototype.$db.fixed_tasks = !db.objectStoreNames.contains('fixed_tasks') && db.createObjectStore('fixed_tasks', { keyPath: 'id' });
- // variable_tasks 可变全局任务
- Vue.prototype.$db.variable_tasks =
- !db.objectStoreNames.contains('variable_tasks') && db.createObjectStore('variable_tasks', { keyPath: 'id' });
- // plugins 插件表
- Vue.prototype.$db.plugins = !db.objectStoreNames.contains('plugins') && db.createObjectStore('plugins', { keyPath: 'id' });
-};
-
-/**
- * 新增数据
- *
- * @param {object} db 数据库database
- * @param {string} collection 集合/表
- * @param {object} data 数据
- */
-const create = (db, collection, data) => {
- return new Promise((resolve, reject) => {
- const request = db.transaction([collection], 'readwrite').objectStore(collection).add(data);
- request.onsuccess = () => resolve();
-
- request.onerror = event => {
- const { name, message } = event.target.error;
- if (name === 'ConstraintError') {
- reject('数据已存在');
- } else {
- reject(message);
- }
- };
- });
-};
-
-/**
- * 找到1条数据
- *
- * @param {object} db 数据库database
- * @param {string} collection 集合/表
- * @param {string} key 索引关键字 一般是id
- */
-const findOne = (db, collection, key) => {
- return new Promise((resolve, reject) => {
- const request = db.transaction([collection]).objectStore(collection).get(key);
- request.onerror = event => reject(event.target.error.message);
- request.onsuccess = event => resolve(event.target.result);
- });
-};
-
-/**
- * 找到所有数据
- *
- * @param {object} db 数据库database
- * @param {string} collection 集合/表
- */
-const find = (db, collection) => {
- return new Promise((resolve, reject) => {
- const request = db.transaction(collection).objectStore(collection).openCursor();
- let result = [];
-
- request.onerror = event => reject(event.target.error.message);
- request.onsuccess = event => {
- const cursor = event.target.result;
- if (cursor) {
- result.push(cursor.value);
- cursor.continue();
- } else {
- resolve(result);
- }
- };
- });
-};
-
-/**
- * 更新数据
- *
- * @param {object} db 数据库database
- * @param {string} collection 集合/表
- * @param {object} newData 新数据
- */
-const update = (db, collection, newData) => {
- return new Promise((resolve, reject) => {
- const request = db.transaction([collection], 'readwrite').objectStore(collection).put(newData);
- request.onerror = event => reject(event.target.error.message);
- request.onsuccess = () => resolve(newData);
- });
-};
-
-/**
- * 移除数据 通过关键字
- *
- * @param {object} db 数据库database
- * @param {string} collection 集合/表
- * @param {string} key 关键字
- */
-const remove = (db, collection, key) => {
- return new Promise((resolve, reject) => {
- const request = db.transaction([collection], 'readwrite').objectStore(collection).delete(key);
- request.onerror = event => reject(event.target.error.message);
- request.onsuccess = () => resolve();
- });
-};
-
-/**
- * 创建索引
- *
- * @param {object} db 数据库database
- * @param {string} collection 集合/表
- * @param {string} field 创建索引的字段名称
- * @param {string} key 关键字
- */
-const createIndexAndFind = (db, collection, field, key) => {
- return new Promise((resolve, reject) => {
- const store = db.transaction([collection], 'readonly').objectStore(collection);
- store.createIndex(field, field);
- const index = store.index(field);
- const request = index.get(key);
- request.onerror = event => reject(event.target.error.message);
- request.onsuccess = event => resolve(event.target.result);
- });
-};
-
-const curriedCreate = curry(create);
-export const curriedFindOne = curry(findOne);
-export const curriedFind = curry(find);
-export const curriedRemove = curry(remove);
-export const curriedUpdate = curry(update);
-export const curriedIndex = curry(createIndexAndFind);
-
-const install = Vue => {
- uni.$db = Vue.prototype.$db = {};
- Vue.prototype.$db.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
- const request = Vue.prototype.$db.indexedDB.open(name, Date.now()); // IDBRequest 对象
- request.onerror = error => console.error('打开数据库失败', error);
- request.onsuccess = event => {
- console.log('INDEXED_DB OPEN SUCCESS');
- Vue.prototype.$db.db = event.target.result;
- };
- request.onupgradeneeded = event => {
- console.log('INDEXED_DB OPEN onupgradeneeded');
- Vue.prototype.$db.db = event.target.result;
- // 创建表
- createCollection(Vue, Vue.prototype.$db.db);
-
- Vue.prototype.$db.create = curriedCreate(Vue.prototype.$db.db); // create 新增数据,颗粒化以后就不用再传db数据了
- Vue.prototype.$db.findOne = curriedFindOne(Vue.prototype.$db.db); // 查一条
- Vue.prototype.$db.find = curriedFind(Vue.prototype.$db.db); // 查集合里的所有数据
- Vue.prototype.$db.update = curriedUpdate(Vue.prototype.$db.db); // 更新某条数据
- Vue.prototype.$db.remove = curriedRemove(Vue.prototype.$db.db); // 删除某条数据
- // Vue.prototype.$db.createIndex = curriedIndex(Vue.prototype.$db.db); // 创建索引
- };
-};
-
-export default { install };
diff --git a/src/utils/tall.js b/src/utils/tall.js
index b6a1e4c..39c0ca5 100644
--- a/src/utils/tall.js
+++ b/src/utils/tall.js
@@ -1,10 +1,8 @@
import app from '@/config/app.js';
import cache from '@/utils/cache.js';
import cacheAndRequest from '@/utils/cacheAndRequest.js';
-import plugin from '@/config/plugin.js';
import storage from '@/utils/storage.js';
import time from '@/utils/time.js';
-import timeConfig from '@/config/time';
import ui from '@/utils/ui.js';
import upload from '@/utils/upload.js';
import user from '@/config/user.js';
@@ -15,10 +13,8 @@ const gateway = process.env.VUE_APP_API_URL;
const $t = {
zIndex, // 定位元素层级
app, // app级别的相关配置
- plugin, // 插件相关配置信息
storage, // 本地存储storage封装
time, // 时间处理
- timeConfig, // 时间相关配置
ui, // ui界面提示相关
chooseAndUpload: upload.chooseAndUpload, // 选择并上传单个文件相关的封装
domain: `${gateway}/defaultwbs`,