From dea60b0ebcec4e8c2e8999426e16307eee9727e0 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Mon, 19 Sep 2022 17:26:50 +0800 Subject: [PATCH] feat: add comment management support (halo-dev/console#612) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /kind feature /milestone 2.0 #### What this PR does / why we need it: 评论管理模块。适配 https://github.com/halo-dev/halo/pull/2412 #### Which issue(s) this PR fixes: Fixes halo-dev/halo#2409 #### Screenshots: #### Special notes for your reviewer: 测试方式: 1. 本地的 halo-admin 仓库需要 checkout 到当前分支。 2. 后端需要 checkout 到 。 3. 使用最新的主题:。 4. 更新 halo-admin 的依赖和构建 packages:`pnpm install` `pnpm build:packages` 5. 启用主题之后在文章详情页面即可看到评论框。 6. 测试主题端的评论和后台评论的管理。 #### Does this PR introduce a user-facing change? ```release-note None ``` --- package.json | 4 +- .../src/components/entity/Entity.vue | 6 +- .../src/components/entity/EntityField.vue | 2 +- packages/components/src/icons/icons.ts | 6 + packages/shared/package.json | 1 - packages/shared/src/utils/api-client.ts | 4 + pnpm-lock.yaml | 22 +- src/formkit/utils/focus.ts | 7 +- src/modules/contents/comments/CommentList.vue | 471 ++++++++++++++---- .../comments/components/CommentListItem.vue | 396 +++++++++++++++ .../components/ReplyCreationModal.vue | 184 +++++++ .../comments/components/ReplyListItem.vue | 184 +++++++ tailwind.config.js | 14 +- 13 files changed, 1198 insertions(+), 103 deletions(-) create mode 100644 src/modules/contents/comments/components/CommentListItem.vue create mode 100644 src/modules/contents/comments/components/ReplyCreationModal.vue create mode 100644 src/modules/contents/comments/components/ReplyListItem.vue diff --git a/package.json b/package.json index 70027655f..f3f15f221 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "packages/*" ], "dependencies": { + "@emoji-mart/data": "^1.0.6", "@formkit/addons": "1.0.0-beta.10", "@formkit/auto-animate": "1.0.0-beta.3", "@formkit/core": "1.0.0-beta.10", @@ -33,7 +34,7 @@ "@formkit/themes": "1.0.0-beta.10", "@formkit/vue": "1.0.0-beta.10", "@halo-dev/admin-shared": "workspace:*", - "@halo-dev/api-client": "^0.0.19", + "@halo-dev/api-client": "^0.0.22", "@halo-dev/components": "workspace:*", "@halo-dev/richtext-editor": "^0.0.0-alpha.7", "@tiptap/extension-character-count": "2.0.0-beta.31", @@ -43,6 +44,7 @@ "axios": "^0.27.2", "colorjs.io": "^0.4.0", "dayjs": "^1.11.5", + "emoji-mart": "^5.2.2", "filepond": "^4.30.4", "floating-vue": "2.0.0-beta.20", "lodash.clonedeep": "^4.5.0", diff --git a/packages/components/src/components/entity/Entity.vue b/packages/components/src/components/entity/Entity.vue index a7018b90a..4b424961a 100644 --- a/packages/components/src/components/entity/Entity.vue +++ b/packages/components/src/components/entity/Entity.vue @@ -1,5 +1,6 @@ + + +
    -
  • -
    + -
    -
    - -
    -
    - - Ryan Wang - -
    -
    - -

    评论测试

    -
    -
    -
    -
    -
    - - - - - -
    -
    -
    -
    + +
diff --git a/src/modules/contents/comments/components/CommentListItem.vue b/src/modules/contents/comments/components/CommentListItem.vue new file mode 100644 index 000000000..712e5aefb --- /dev/null +++ b/src/modules/contents/comments/components/CommentListItem.vue @@ -0,0 +1,396 @@ + + + diff --git a/src/modules/contents/comments/components/ReplyCreationModal.vue b/src/modules/contents/comments/components/ReplyCreationModal.vue new file mode 100644 index 000000000..baf4e5958 --- /dev/null +++ b/src/modules/contents/comments/components/ReplyCreationModal.vue @@ -0,0 +1,184 @@ + + + diff --git a/src/modules/contents/comments/components/ReplyListItem.vue b/src/modules/contents/comments/components/ReplyListItem.vue new file mode 100644 index 000000000..c57c4f091 --- /dev/null +++ b/src/modules/contents/comments/components/ReplyListItem.vue @@ -0,0 +1,184 @@ + + + diff --git a/tailwind.config.js b/tailwind.config.js index 82ede74f4..133dc051d 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,3 +1,4 @@ +/** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./index.html", @@ -5,7 +6,18 @@ module.exports = { "./packages/shared/src/**/*.{vue,js,ts,jsx,tsx}", ], theme: { - extend: {}, + extend: { + animation: { + breath: "breath 1s ease-in-out infinite", + }, + keyframes: { + breath: { + "0%": { transform: "scale(1)", opacity: 0.8 }, + "50%": { transform: "scale(1.02)", opacity: 1 }, + "100%": { transform: "scale(1)", opacity: 0.8 }, + }, + }, + }, }, plugins: [ require("tailwindcss-safe-area"),