bianjiang 1 year ago
parent
commit
1aa30b53c4

+ 1 - 3
package.json

@@ -16,17 +16,15 @@
     "@linaria/rollup": "^4.3.7",
     "@rollup/plugin-inject": "^5.0.3",
     "@types/lodash": "^4.14.194",
-    "@types/quill": "^2.0.10",
     "@types/rollup-plugin-css-only": "^3.1.0",
     "@vitejs/plugin-vue-jsx": "^3.0.1",
     "@wangeditor/editor": "^5.1.23",
     "ant-design-vue": "^3.2.19",
     "axios": "^1.4.0",
+    "dayjs": "^1.11.7",
     "less": "^4.1.3",
     "less-loader": "^11.1.0",
     "pinia": "^2.0.36",
-    "quill": "^1.3.7",
-    "quill-better-table": "^1.2.10",
     "rollup-plugin-css-only": "^4.3.0",
     "swiper": "^9.2.4",
     "unplugin-vue-components": "^0.24.1",

+ 52 - 50
src/components/Provider/Modal.less

@@ -1,59 +1,61 @@
 .inf-modal {
-  top: 0;
-  padding-bottom: 0;
-  width: 100vw;
-  height: 100vh;
-  .ant-modal-header {
-    padding: 16px 24px;
-    font-size: 16px;
-    font-weight: 500;
-    background-color: #fff;
-    text-align: left;
-    border-bottom: 1px solid #e5e5e5;
-  }
-  .ant-modal-content {
-    width: 100%;
-    height: 100%;
-    padding: 0;
-    background-color: transparent;
-    box-shadow: none;
-    text-align: center;
-  }
-  .ant-modal-body {
-    position: relative;
-    padding: 0;
-    display: inline-block;
-    margin: 100px 0;
-    text-align: initial;
-    background-color: #fff;
-    border-radius: 4px;
-    .ant-modal-close {
-      position: absolute;
-      top: 0;
-      right: 0;
-      width: 56px;
-      height: 56px;
+  &.ant-modal {
+    top: 0;
+    padding-bottom: 0;
+    width: 100vw;
+    height: 100vh;
+    .ant-modal-header {
+      padding: 16px 24px;
       font-size: 16px;
-      line-height: 56px;
+      font-weight: 500;
+      background-color: #fff;
+      text-align: left;
+      border-bottom: 1px solid #e5e5e5;
     }
-    > :last-child {
-      padding: 24px;
+    .ant-modal-content {
+      width: 100%;
+      height: 100%;
+      padding: 0;
+      background-color: transparent;
+      box-shadow: none;
+      text-align: center;
     }
-  }
-
-  &.ant-modal-fullscreen {
-    max-width: 100%;
-    margin: 0;
     .ant-modal-body {
-      display: flex;
-      flex-direction: column;
-      height: 100%;
-      margin: 0;
-      border-radius: 0;
+      position: relative;
+      padding: 0;
+      display: inline-block;
+      margin: 100px 0;
+      text-align: initial;
+      background-color: #fff;
+      border-radius: 4px;
+      .ant-modal-close {
+        position: absolute;
+        top: 0;
+        right: 0;
+        width: 56px;
+        height: 56px;
+        font-size: 16px;
+        line-height: 56px;
+      }
       > :last-child {
-        flex-grow: 1;
-        padding: 0;
-        height: 0;
+        padding: 24px;
+      }
+    }
+
+    &.ant-modal-fullscreen {
+      max-width: 100%;
+      margin: 0;
+      .ant-modal-body {
+        display: flex;
+        flex-direction: column;
+        height: 100%;
+        margin: 0;
+        border-radius: 0;
+        > :last-child {
+          flex-grow: 1;
+          padding: 0;
+          height: 0;
+        }
       }
     }
   }

+ 1 - 1
src/controllers/ListController.ts

@@ -29,7 +29,7 @@ class ListItemBase {
 }
 
 class StatePageList<T extends ListItemBase, Q> extends StateRoot {
-  size = 10;
+  size = 20;
   page = 1;
   total = 0;
   list: T[] = [];

+ 9 - 0
src/typings/asset.d.ts

@@ -17,5 +17,14 @@ declare type CategoryItem = {
   isHome: bool; // 是否展示到首页
   children?: CategoryItem[];
 };
+declare type ArticleItem = {
+  _id: string;
+  cid: string; // 分类id
+  title: string; //名称
+  cover: string; //封面图
+  summary: string;
+  content: string; //内容
+  sort: number;
+};
 
 declare module "quill-better-table";

+ 10 - 1
src/views/admin/components/WangEditor.tsx

@@ -152,9 +152,16 @@ export default defineComponent({
   },
 });
 const EditorPage = css`
+  flex: 1;
+  overflow: hidden;
   #editor—wrapper {
+    height: 100%;
+    overflow: auto;
     border: 1px solid #ccc;
     z-index: 1;
+    &.w-e-full-screen-container {
+      z-index: 999;
+    }
   }
   #toolbar-container {
     position: relative;
@@ -169,6 +176,8 @@ const EditorPage = css`
     }
   }
   #editor-container {
-    height: 600px;
+    /* height: 500px; */
+    height: calc(100% - 41px);
+    min-height: 500px;
   }
 `;

+ 8 - 1
src/views/admin/detail/components/DetailEditor.tsx

@@ -1,4 +1,5 @@
 import { Button, PageHeader } from "ant-design-vue";
+
 import { defineComponent, onMounted, reactive } from "vue";
 
 import loading from "@/components/Provider/Loading";
@@ -6,6 +7,7 @@ import { useArticle } from "@/modules/admin";
 import { CategoryItem } from "@/typings/asset";
 import { object } from "vue-types";
 import WangEditor from "../../components/WangEditor";
+import { css } from "@linaria/core";
 
 export default defineComponent({
   props: {
@@ -49,7 +51,7 @@ export default defineComponent({
 
     return () => {
       return (
-        <div>
+        <div class={Page}>
           <PageHeader title={data?.name}>
             {{
               extra: () => {
@@ -71,3 +73,8 @@ export default defineComponent({
     };
   },
 });
+const Page = css`
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+`;

+ 71 - 0
src/views/admin/detail/components/ListEditModal.tsx

@@ -0,0 +1,71 @@
+import { Button, PageHeader } from "ant-design-vue";
+import { defineComponent, onMounted, reactive } from "vue";
+
+import loading from "@/components/Provider/Loading";
+import { useArticle } from "@/modules/admin";
+import { ArticleItem } from "@/typings/asset";
+import { object } from "vue-types";
+import WangEditor from "../../components/WangEditor";
+import { css } from "@linaria/core";
+
+export default defineComponent({
+  props: {
+    data: object<ArticleItem>(),
+  },
+  setup(props) {
+    const data: any = props.data || {};
+    const artStore = useArticle();
+    const state = reactive({
+      data: {} as any,
+    });
+
+    onMounted(() => {
+      //   initDetail();
+    });
+
+    // const initDetail = async () => {
+    //   loading.show("");
+    //   artStore.listController.state.query = JSON.stringify({ cid: data._id });
+    //   await artStore.listController.loadPage(1);
+    //   const item = artStore.listController.state.list[0] || {};
+    //   if (item._id) {
+    //     const detRes = await artStore.getArticleDetail(item);
+    //     if (detRes) {
+    //       state.data = detRes;
+    //     }
+    //   }
+    //   loading.hidden();
+    // };
+    const editorChange = (v: any) => {
+      //   state.data.content = v;
+    };
+    const submit = () => {
+      //   const subData = { ...state.data };
+      //   if (!subData._id) {
+      //     subData.title = data?.name;
+      //     subData.cid = data._id;
+      //   }
+      //   artStore.addOrUpdateArticle(subData);
+    };
+
+    return () => {
+      return (
+        <div>
+          <div class={ModalPage}>
+            <Button type="primary" onClick={submit}>
+              保存
+            </Button>
+            <WangEditor
+              key={data._id}
+              content={state.data.content}
+              onChange={editorChange}
+            />
+          </div>
+        </div>
+      );
+    };
+  },
+});
+const ModalPage = css`
+  padding: 20px;
+`;

+ 132 - 0
src/views/admin/detail/components/ListEditor.tsx

@@ -0,0 +1,132 @@
+import { Button, PageHeader, Space, Table } from "ant-design-vue";
+import { defineComponent, onMounted, reactive } from "vue";
+
+import loading from "@/components/Provider/Loading";
+import { useArticle } from "@/modules/admin";
+import { CategoryItem } from "@/typings/asset";
+import { object } from "vue-types";
+import WangEditor from "../../components/WangEditor";
+import * as dayjs from "dayjs";
+import ListEditModal from "./ListEditModal";
+import Modal from "@/components/Provider/Modal";
+
+export default defineComponent({
+  props: {
+    data: object<CategoryItem>(),
+  },
+  setup(props) {
+    const data: any = props.data || {};
+    const artStore = useArticle();
+    const state = reactive({
+      data: {} as any,
+    });
+
+    onMounted(() => {
+      initList();
+    });
+
+    const initList = async () => {
+      loading.show("");
+      artStore.listController.state.query = JSON.stringify({ cid: data._id });
+      await artStore.listController.loadPage(1);
+      //   const item = artStore.listController.state.list[0] || {};
+      //   if (item._id) {
+      //     const detRes = await artStore.getArticleDetail(item);
+      //     if (detRes) {
+      //       state.data = detRes;
+      //     }
+      //   }
+      loading.hidden();
+    };
+    const columns = [
+      {
+        title: "名称",
+        dataIndex: "title",
+      },
+      {
+        title: "创建时间",
+        dataIndex: "createTime",
+        customRender({ record }: any) {
+          return dayjs(record.createTime).format("YYYY-MM-DD");
+        },
+      },
+      {
+        title: "操作",
+        customRender: ({ record }: any) => {
+          return (
+            <Space>
+              <Button
+                type="link"
+                onClick={() => {
+                  editItem(record);
+                  console.log(record);
+                }}
+              >
+                编辑
+              </Button>
+              <Button
+                danger
+                type="link"
+                onClick={() => {
+                  console.log(record);
+                }}
+              >
+                删除
+              </Button>
+            </Space>
+          );
+        },
+      },
+    ];
+    const editItem = async (item?: any) => {
+      const itemData = Modal.show(<ListEditModal />, {
+        title: item._id ? `编辑${data?.name}` : `添加${data?.name}`,
+        fullscreen: true,
+      });
+    };
+    const submit = () => {
+      const subData = { ...state.data };
+      if (!subData._id) {
+        subData.title = data?.name;
+        subData.cid = data._id;
+      }
+      artStore.addOrUpdateArticle(subData);
+    };
+
+    return () => {
+      return (
+        <div>
+          <PageHeader title={data?.name}>
+            {{
+              extra: () => {
+                return (
+                  <Button
+                    type="primary"
+                    onClick={() => {
+                      editItem({});
+                    }}
+                  >
+                    添加{data?.name}
+                  </Button>
+                );
+              },
+            }}
+          </PageHeader>
+          <Table
+            bordered
+            size="small"
+            pagination={{
+              size: "small",
+              showSizeChanger: false,
+              pageSize: artStore.listController.state.size,
+              total: artStore.listController.state.total,
+              onChange: (v) => artStore.listController.loadPage(v),
+            }}
+            columns={columns}
+            dataSource={artStore.listController.state.list}
+          ></Table>
+        </div>
+      );
+    };
+  },
+});

+ 7 - 0
src/views/admin/detail/index.tsx

@@ -6,6 +6,7 @@ import { useArticle, useCategory } from "@/modules/admin";
 import { useRoute } from "vue-router";
 import { CategoryItem } from "@/typings/asset";
 import DetailEditor from "./components/DetailEditor";
+import ListEditor from "./components/ListEditor";
 
 export default defineComponent({
   setup() {
@@ -25,6 +26,9 @@ export default defineComponent({
           {currCategory?.type == "detail" && (
             <DetailEditor key={currCategory._id} data={currCategory} />
           )}
+          {currCategory?.type == "list" && (
+            <ListEditor key={currCategory._id} data={currCategory} />
+          )}
         </Card>
       );
     };
@@ -32,4 +36,7 @@ export default defineComponent({
 });
 const Page = css`
   height: 100%;
+  .ant-card-body {
+    height: 100%;
+  }
 `;

+ 4 - 3
src/views/admin/index/index.tsx

@@ -23,6 +23,7 @@ export default defineComponent(() => {
   );
 });
 const PageRoot = css`
+  height: 100vh;
   .ant-layout-header {
     position: fixed;
     left: 0;
@@ -32,9 +33,9 @@ const PageRoot = css`
     padding: 0 20px;
   }
   .page_content {
-    margin-left: 200px;
-    margin-top: 64px;
-    padding: 24px;
+    height: 100%;
+    width: 100%;
+    padding: 88px 24px 24px 224px;
     .ant-page-header {
       padding: 16px 0;
     }

+ 5 - 190
yarn.lock

@@ -1324,14 +1324,6 @@
   resolved "http://124.70.149.18:4873/@types%2fnode/-/node-18.16.1.tgz"
   integrity sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA==
 
-"@types/quill@^2.0.10":
-  version "2.0.10"
-  resolved "http://124.70.149.18:4873/@types%2fquill/-/quill-2.0.10.tgz#bd3df7b59e0cfeb90f3d38892e4d1866261e7c0e"
-  integrity sha512-L6OHONEj2v4NRbWQOsn7j1N0SyzhRR3M4g1M6j/uuIwIsIW2ShWHhwbqNvH8hSmVktzqu0lITfdnqVOQ4qkrhA==
-  dependencies:
-    parchment "^1.1.2"
-    quill-delta "^4.0.1"
-
 "@types/rollup-plugin-css-only@^3.1.0":
   version "3.1.0"
   resolved "http://124.70.149.18:4873/@types%2frollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz"
@@ -1582,11 +1574,6 @@
     scroll-into-view-if-needed "^2.2.28"
     slate-history "^0.66.0"
 
-"@wangeditor/editor-for-vue@^5.1.12":
-  version "5.1.12"
-  resolved "http://124.70.149.18:4873/@wangeditor%2feditor-for-vue/-/editor-for-vue-5.1.12.tgz#f7d5f239b39cdfc01d31151488de8443fe6edc64"
-  integrity sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==
-
 "@wangeditor/editor@^5.1.23":
   version "5.1.23"
   resolved "http://124.70.149.18:4873/@wangeditor%2feditor/-/editor-5.1.23.tgz#c9d2007b7cb0ceef6b72692b4ee87b01ee2367b3"
@@ -1799,14 +1786,6 @@ browserslist@^4.21.3, browserslist@^4.21.5:
     node-releases "^2.0.8"
     update-browserslist-db "^1.0.10"
 
-call-bind@^1.0.2:
-  version "1.0.2"
-  resolved "http://124.70.149.18:4873/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
-  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
-  dependencies:
-    function-bind "^1.1.1"
-    get-intrinsic "^1.0.2"
-
 callsites@^3.0.0:
   version "3.1.0"
   resolved "http://124.70.149.18:4873/callsites/-/callsites-3.1.0.tgz"
@@ -1846,11 +1825,6 @@ chokidar@^3.5.3:
   optionalDependencies:
     fsevents "~2.3.2"
 
-clone@^2.1.1:
-  version "2.1.2"
-  resolved "http://124.70.149.18:4873/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
-  integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
-
 color-convert@^1.9.0:
   version "1.9.3"
   resolved "http://124.70.149.18:4873/color-convert/-/color-convert-1.9.3.tgz"
@@ -1927,6 +1901,11 @@ dayjs@^1.10.5:
   resolved "http://124.70.149.18:4873/dayjs/-/dayjs-1.11.7.tgz"
   integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
 
+dayjs@^1.11.7:
+  version "1.11.7"
+  resolved "http://124.70.149.18:4873/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2"
+  integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
+
 de-indent@^1.0.2:
   version "1.0.2"
   resolved "http://124.70.149.18:4873/de-indent/-/de-indent-1.0.2.tgz"
@@ -1946,31 +1925,11 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.4:
   dependencies:
     ms "2.1.2"
 
-deep-equal@^1.0.1:
-  version "1.1.1"
-  resolved "http://124.70.149.18:4873/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
-  integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
-  dependencies:
-    is-arguments "^1.0.4"
-    is-date-object "^1.0.1"
-    is-regex "^1.0.4"
-    object-is "^1.0.1"
-    object-keys "^1.1.1"
-    regexp.prototype.flags "^1.2.0"
-
 deepmerge@^2.2.1:
   version "2.2.1"
   resolved "http://124.70.149.18:4873/deepmerge/-/deepmerge-2.2.1.tgz"
   integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
 
-define-properties@^1.1.3, define-properties@^1.2.0:
-  version "1.2.0"
-  resolved "http://124.70.149.18:4873/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5"
-  integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==
-  dependencies:
-    has-property-descriptors "^1.0.0"
-    object-keys "^1.1.1"
-
 delayed-stream@~1.0.0:
   version "1.0.0"
   resolved "http://124.70.149.18:4873/delayed-stream/-/delayed-stream-1.0.0.tgz"
@@ -2094,11 +2053,6 @@ event-emitter@^0.3.5:
     d "1"
     es5-ext "~0.10.14"
 
-eventemitter3@^2.0.3:
-  version "2.0.3"
-  resolved "http://124.70.149.18:4873/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba"
-  integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=
-
 ext@^1.1.2:
   version "1.7.0"
   resolved "http://124.70.149.18:4873/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
@@ -2106,21 +2060,6 @@ ext@^1.1.2:
   dependencies:
     type "^2.7.2"
 
-extend@^3.0.2:
-  version "3.0.2"
-  resolved "http://124.70.149.18:4873/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-fast-diff@1.1.2:
-  version "1.1.2"
-  resolved "http://124.70.149.18:4873/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
-  integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==
-
-fast-diff@1.2.0:
-  version "1.2.0"
-  resolved "http://124.70.149.18:4873/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
-  integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
-
 fast-glob@^3.2.12:
   version "3.2.12"
   resolved "http://124.70.149.18:4873/fast-glob/-/fast-glob-3.2.12.tgz"
@@ -2178,26 +2117,11 @@ function-bind@^1.1.1:
   resolved "http://124.70.149.18:4873/function-bind/-/function-bind-1.1.1.tgz"
   integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 
-functions-have-names@^1.2.3:
-  version "1.2.3"
-  resolved "http://124.70.149.18:4873/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
-  integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
-
 gensync@^1.0.0-beta.2:
   version "1.0.0-beta.2"
   resolved "http://124.70.149.18:4873/gensync/-/gensync-1.0.0-beta.2.tgz"
   integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
 
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
-  version "1.2.1"
-  resolved "http://124.70.149.18:4873/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82"
-  integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==
-  dependencies:
-    function-bind "^1.1.1"
-    has "^1.0.3"
-    has-proto "^1.0.1"
-    has-symbols "^1.0.3"
-
 glob-parent@^5.1.2, glob-parent@~5.1.2:
   version "5.1.2"
   resolved "http://124.70.149.18:4873/glob-parent/-/glob-parent-5.1.2.tgz"
@@ -2220,30 +2144,6 @@ has-flag@^3.0.0:
   resolved "http://124.70.149.18:4873/has-flag/-/has-flag-3.0.0.tgz"
   integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
 
-has-property-descriptors@^1.0.0:
-  version "1.0.0"
-  resolved "http://124.70.149.18:4873/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
-  integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
-  dependencies:
-    get-intrinsic "^1.1.1"
-
-has-proto@^1.0.1:
-  version "1.0.1"
-  resolved "http://124.70.149.18:4873/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
-  integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
-
-has-symbols@^1.0.2, has-symbols@^1.0.3:
-  version "1.0.3"
-  resolved "http://124.70.149.18:4873/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
-  integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-
-has-tostringtag@^1.0.0:
-  version "1.0.0"
-  resolved "http://124.70.149.18:4873/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
-  integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
-  dependencies:
-    has-symbols "^1.0.2"
-
 has@^1.0.3:
   version "1.0.3"
   resolved "http://124.70.149.18:4873/has/-/has-1.0.3.tgz"
@@ -2298,14 +2198,6 @@ import-fresh@^3.2.1:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
 
-is-arguments@^1.0.4:
-  version "1.1.1"
-  resolved "http://124.70.149.18:4873/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
-  integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
-  dependencies:
-    call-bind "^1.0.2"
-    has-tostringtag "^1.0.0"
-
 is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "http://124.70.149.18:4873/is-arrayish/-/is-arrayish-0.2.1.tgz"
@@ -2325,13 +2217,6 @@ is-core-module@^2.11.0:
   dependencies:
     has "^1.0.3"
 
-is-date-object@^1.0.1:
-  version "1.0.5"
-  resolved "http://124.70.149.18:4873/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
-  integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
-  dependencies:
-    has-tostringtag "^1.0.0"
-
 is-extendable@^1.0.0:
   version "1.0.1"
   resolved "http://124.70.149.18:4873/is-extendable/-/is-extendable-1.0.1.tgz"
@@ -2378,14 +2263,6 @@ is-plain-object@^2.0.4:
   dependencies:
     isobject "^3.0.1"
 
-is-regex@^1.0.4:
-  version "1.1.4"
-  resolved "http://124.70.149.18:4873/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
-  integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
-  dependencies:
-    call-bind "^1.0.2"
-    has-tostringtag "^1.0.0"
-
 is-url@^1.2.4:
   version "1.2.4"
   resolved "http://124.70.149.18:4873/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
@@ -2689,19 +2566,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
   resolved "http://124.70.149.18:4873/normalize-path/-/normalize-path-3.0.0.tgz"
   integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
 
-object-is@^1.0.1:
-  version "1.1.5"
-  resolved "http://124.70.149.18:4873/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
-  integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
-object-keys@^1.1.1:
-  version "1.1.1"
-  resolved "http://124.70.149.18:4873/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
-  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
 object.omit@^3.0.0:
   version "3.0.0"
   resolved "http://124.70.149.18:4873/object.omit/-/object.omit-3.0.0.tgz"
@@ -2723,11 +2587,6 @@ p-locate@^5.0.0:
   dependencies:
     p-limit "^3.0.2"
 
-parchment@^1.1.2, parchment@^1.1.4:
-  version "1.1.4"
-  resolved "http://124.70.149.18:4873/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5"
-  integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==
-
 parent-module@^1.0.0:
   version "1.0.1"
   resolved "http://124.70.149.18:4873/parent-module/-/parent-module-1.0.1.tgz"
@@ -2822,41 +2681,6 @@ queue-microtask@^1.2.2:
   resolved "http://124.70.149.18:4873/queue-microtask/-/queue-microtask-1.2.3.tgz"
   integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
 
-quill-better-table@^1.2.10:
-  version "1.2.10"
-  resolved "http://124.70.149.18:4873/quill-better-table/-/quill-better-table-1.2.10.tgz#ed0e21cdbaff672189b902187720fde08ae2a96a"
-  integrity sha512-CFwxAQzt4EPCQuynQ65R/FU7Yu//kcDBb/rmBBOsFfO758+q50zvG/PDt4Lenv9DcrSgwnyNkfo4yeA5fzzVYQ==
-
-quill-delta@^3.6.2:
-  version "3.6.3"
-  resolved "http://124.70.149.18:4873/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032"
-  integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==
-  dependencies:
-    deep-equal "^1.0.1"
-    extend "^3.0.2"
-    fast-diff "1.1.2"
-
-quill-delta@^4.0.1:
-  version "4.2.2"
-  resolved "http://124.70.149.18:4873/quill-delta/-/quill-delta-4.2.2.tgz#015397d046e0a3bed087cd8a51f98c11a1b8f351"
-  integrity sha512-qjbn82b/yJzOjstBgkhtBjN2TNK+ZHP/BgUQO+j6bRhWQQdmj2lH6hXG7+nwwLF41Xgn//7/83lxs9n2BkTtTg==
-  dependencies:
-    fast-diff "1.2.0"
-    lodash.clonedeep "^4.5.0"
-    lodash.isequal "^4.5.0"
-
-quill@^1.3.7:
-  version "1.3.7"
-  resolved "http://124.70.149.18:4873/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8"
-  integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==
-  dependencies:
-    clone "^2.1.1"
-    deep-equal "^1.0.1"
-    eventemitter3 "^2.0.3"
-    extend "^3.0.2"
-    parchment "^1.1.4"
-    quill-delta "^3.6.2"
-
 readdirp@~3.6.0:
   version "3.6.0"
   resolved "http://124.70.149.18:4873/readdirp/-/readdirp-3.6.0.tgz"
@@ -2888,15 +2712,6 @@ regenerator-transform@^0.15.1:
   dependencies:
     "@babel/runtime" "^7.8.4"
 
-regexp.prototype.flags@^1.2.0:
-  version "1.5.0"
-  resolved "http://124.70.149.18:4873/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb"
-  integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.2.0"
-    functions-have-names "^1.2.3"
-
 regexpu-core@^5.3.1:
   version "5.3.2"
   resolved "http://124.70.149.18:4873/regexpu-core/-/regexpu-core-5.3.2.tgz"