diff --git a/.github/workflows/gh-page.yml b/.github/workflows/gh-page.yml index 505e085c..0dc4a8c1 100644 --- a/.github/workflows/gh-page.yml +++ b/.github/workflows/gh-page.yml @@ -24,7 +24,7 @@ jobs: - name: Use Node.js uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 cache: "pnpm" - name: Install dependencies @@ -43,3 +43,10 @@ jobs: with: BRANCH: gh-pages # 部署分支 FOLDER: gbeata-dist # 打包, 静态资源输出的目录 + + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.PERSONAL_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_PACKAGE }} + run: | + npx semantic-release diff --git a/.github/workflows/push-message.yml b/.github/workflows/push-message.yml new file mode 100644 index 00000000..ea129129 --- /dev/null +++ b/.github/workflows/push-message.yml @@ -0,0 +1,27 @@ +name: Notify WeChat on Tag + +on: + push: + tags: + - "*" + +jobs: + notify: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Extract Release Note + id: extract_note + run: echo ::set-output name=note::$(git show -s --format=%b ${{ github.sha }}) + + - name: Debug Release Note + run: echo "Release Note:${{ steps.extract_note.outputs.note }}" + + - name: Send notification to WeChat + run: | + curl -H "Content-Type: application/json" \ + -X POST \ + -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"New tag created: ${{ github.ref }}\\nRelease Note: ${{ steps.extract_note.outputs.note }}\"}}" \ + "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=9875c111-57b0-42c4-a301-cdaed5e215cc" diff --git a/.releaserc.js b/.releaserc.js index cc88ca6e..422f4acd 100644 --- a/.releaserc.js +++ b/.releaserc.js @@ -1,5 +1,5 @@ module.exports = { - branches: ["main"], // 指定在哪个分支下要执行发布操作 + branches: ["main", "admin"], // 指定在哪个分支下要执行发布操作 plugins: [ "@semantic-release/commit-analyzer", // 解析 commit 信息,默认就是 Angular 规范 "@semantic-release/release-notes-generator", diff --git a/CHANGELOG.md b/CHANGELOG.md index 84bc236d..ae3c4e46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,109 @@ +# [1.3.0](https://github.com/anyone-yuren/react-antd-admin-pnpm/compare/v1.2.5...v1.3.0) (2024-01-03) + + +### Bug Fixes + +* :bug: 同步esbuild版本 ([6e02325](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/6e02325f328d79cceb0b0df0418acde5c55df232)) + + +### Features + +* :sparkles: ceshi ([4295d28](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/4295d28af36c4b8a4e178229305abafc65f5a6db)) +* :sparkles: ceshi ([e11cd31](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/e11cd31a86606a98b36c2cd34afe82aca33e2edc)) +* :sparkles: ceshi ([0d4e8f3](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/0d4e8f3267141042f247a2759353f8642d43bbf9)) +* :sparkles: ceshi ([b5b4454](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/b5b4454e4512517c220f406a9a95063e4b6edbb8)) +* :sparkles: ceshi ([16a5f53](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/16a5f531aa47af4e565ceb3c6368dbf200941203)) +* :sparkles: ceshi ([433ad9d](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/433ad9ddbd79a90e0328dcae75b7929bdd085c17)) +* :sparkles: debugger ([fdc788d](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/fdc788df8c466be8567859832f5326489cd2683a)) +* :sparkles: feat: 修改动态路由数据 ([c332d69](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/c332d69f87007671df2d04c17ea1ab67ae2a825a)) +* :sparkles: feature 模块改造 ([9e0e814](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/9e0e81406c10fba8fabc66d0b7f9c06ae720f30e)) +* :sparkles: friends组件 ([5f92ffc](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/5f92ffc1f79a1a73e09e894b0bc44dc421aa78cb)) +* :sparkles: less 转 antd-style写法 ([83e5382](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/83e53825434d1abd673e58570c098769858fff0c)) +* :sparkles: te ttet ([d3f7563](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/d3f7563e24cafc54496458fb5041c4c1d74b5327)) +* :sparkles: tesst ([a1cf56c](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/a1cf56c8c4d2fe8bc021e2216f46b3b5d1aca41c)) +* :sparkles: test ([3bbec41](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/3bbec41a96462e42bfa5794a768148be3f072ea4)) +* :sparkles: test ([dfe84fd](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/dfe84fdec7950460572a8f6368d8de913f132774)) +* :sparkles: test ([d6761fb](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/d6761fb71b04cba4cdeb95f08baeb40e3cf6a086)) +* :sparkles: test ([78ae6cf](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/78ae6cf56dcc0466af7207968bc2fed05ba70fcb)) +* :sparkles: test ([253a176](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/253a176c1a3921db207ff092a6cf5b5ea221f7c6)) +* :sparkles: test ([c11bed3](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/c11bed3715805395810b8a8c192ede3684b986bb)) +* :sparkles: test ([47d4b75](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/47d4b754f7b68f85c810b89c5408e01ae1e9c403)) +* :sparkles: testtest ([6275dd0](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/6275dd01868531f4e55d98c21a515a0b64e3a71b)) +* :sparkles: 个人中心页面设计 ([cc37e2e](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/cc37e2e114d20c0062655fa7014e69eea68d4de3)) +* :sparkles: 修改ADMINvite配置bug ([2b8901f](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/2b8901f627cf1ce7828de4659fd783da08f72adb)) +* :sparkles: 修改ant visible=>open ([0fcd283](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/0fcd283d1a44ab56d0d526b0a00cd40a956978bc)) +* :sparkles: 修改lazyload默认导出 ([d2fa236](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/d2fa236445a76481f208b621254caff1b4b1b2bd)) +* :sparkles: 修改lock mock版本 ([90dbed8](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/90dbed89f436c592a9528e98dbb91afc06c4675a)) +* :sparkles: 修改logo、系统名称样式 ([46aadba](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/46aadbae3fe694f51dd081bffd14f5437e7d0d58)) +* :sparkles: 修改Tags组件样式 ([9f626a5](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/9f626a5fe4d999ee469eec691195f10700bf331f)) +* :sparkles: 修改tags颜色 ([9ec557f](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/9ec557f8b2ef2f3ded1ab696a2dbbc0305409d8d)) +* :sparkles: 修改tag标签样式BUG ([96c5e48](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/96c5e4878950793aa811e9b3697614631134c372)) +* :sparkles: 修改userCard圆角样式 ([7a1aa84](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/7a1aa84322fb6f867da77bdadc02be1b3b15965a)) +* :sparkles: 修改userCard组件样式 ([d74ab37](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/d74ab37aed0003c19e6c8fbaf81f473672f1f25d)) +* :sparkles: 修改VITE配置 ([1b57ebf](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/1b57ebf7bee264c9f39951831a79137e8f20545d)) +* :sparkles: 修改主题色 ([f0b5dbe](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/f0b5dbe254a06abe91936c464a4d19d99f8b0c9f)) +* :sparkles: 修改启动页动画效果 ([4ed0a1a](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/4ed0a1af1c3289f44c7fc12cacdb1fdf5f93fa85)) +* :sparkles: 修改头像 ([b21f8c3](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/b21f8c3f71f000c074a06a195b24bbe690592c5f)) +* :sparkles: 修改头部样式以及主体背景色 ([942d1fa](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/942d1fa0738561f9c0fc1a29616acc3a56f71d00)) +* :sparkles: 修改弹窗comfirm样式主题不生效问题 ([9494594](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/9494594683e1d0d12b64793ac7c9b10b56cfd1e1)) +* :sparkles: 修改构建node版本 ([267244b](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/267244ba4e89cfe19aa15cab4b0dd4d321d705f9)) +* :sparkles: 修改构建胚子 ([4a4596f](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/4a4596ff5d069aefd30ebd524d9dd8b91ccd3e02)) +* :sparkles: 修改系统图标与公用配置抽离 ([1137e11](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/1137e11b25234deb97c120c17edd7b976eb4687d)) +* :sparkles: 修改菜单样式 ([486c668](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/486c6683df0f963626e247a32f69979259170abb)) +* :sparkles: 修改路由 ([469c401](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/469c401250b1dabab11a732ef50b42034ee3e09e)) +* :sparkles: 修改首页布局 ([407c6ed](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/407c6ed34e15ec7e724dac6e984b2d229f604ea0)) +* :sparkles: 修改首页请求异常问题 ([9f0b3b0](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/9f0b3b0565bd4c6bce84ac89fa4728c2c055fa1b)) +* :sparkles: 升级版本 ([2bf6224](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/2bf62241db1f45a1143410608cde21a0612e2d3f)) +* :sparkles: 去除admin短路运算符限制 ([72e3aef](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/72e3aefe922d01b3360cd56a2d38c5d34ddd0034)) +* :sparkles: 去除多余样式 ([3b1fa10](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/3b1fa1074a8910908e517d58b72b18a9908dd0d3)) +* :sparkles: 去除测试代码 ([bff44ee](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/bff44ee677dcac37b01048d62a94bc8a3c5e0364)) +* :sparkles: 启动页设计 ([0035bb0](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/0035bb0aac676a6db0dec14adeeeb11563bc4514)) +* :sparkles: 增加npm参数 ([8a0756c](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/8a0756ca5556be1b1d41817956b05224c197987e)) +* :sparkles: 完成proFile面板设计 ([a198765](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/a198765b9b59bb9a0e63d63fc151ebcd2b7cae82)) +* :sparkles: 完成快捷操作搜索功能 ([d86ca8b](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/d86ca8b17eb1abb47942e0aa47da37cf92a31b41)) +* :sparkles: 打印错误日志 ([956b104](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/956b104c6d5f09f021890a3050c21b5c2f4fc917)) +* :sparkles: 新增apis模块,首页新增github记录 ([046cc3a](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/046cc3a0b7f868730becfd587a332005f08c6aec)) +* :sparkles: 新增GlobalSearch组件 ([74bb8e6](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/74bb8e649d56c5fc5ec774be4de22876e04110af)) +* :sparkles: 新增loading组件 ([8d17b48](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/8d17b48410af3f35ebb51fd78ff9be6c3bacbbf4)) +* :sparkles: 新增logologo ([af9457f](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/af9457f35285ff90ea8d611bf2e7da7f12eb4cff)) +* :sparkles: 新增Slick组件,首页新增轮播 ([8f5d7c2](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/8f5d7c285608bdcadd1cc972a75abd19b5642410)) +* :sparkles: 新增UI包,新增动画组件 ([7f5a8d0](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/7f5a8d082f8e279892d11fe7b0e543ec34996011)) +* :sparkles: 新增一键换肤 ([dee7f96](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/dee7f961db14bb610c41556a0f9122e0becc116d)) +* :sparkles: 新增主题切换 ([219fe76](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/219fe76c4cc11a66b01f0a22012714154f9dfa3d)) +* :sparkles: 新增全局配置configProvider ([bd337bf](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/bd337bfd6e89c68a40e7fd76443c2b934450ed89)) +* :sparkles: 新增系统logo ([a693e26](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/a693e2666ee426f6e44b45682e56998f1336d38a)) +* :sparkles: 新增设置面板,完成主题切换 ([aad62bc](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/aad62bc2c5502960ce50353a8cf9802264edd169)) +* :sparkles: 新增面包屑与页签控制 ([21d92b7](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/21d92b765a6ffe7b5b8ac3a90351d816b5003931)) +* :sparkles: 更换logo ([ddffe83](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/ddffe83a321206acbe9bd1862bc8251acbd79f90)) +* :sparkles: 更新依赖包 ([9557c10](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/9557c1007e51d0a1b600e4b57d02eb16f137db4d)) +* :sparkles: 测试 ([e97e52c](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/e97e52c322d72ea9d424c392e5904c5d8d68a3be)) +* :sparkles: 测试 ([0054117](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/00541173dabd7faa5db3843a84e55f73d1a96b78)) +* :sparkles: 测试 ([46583e9](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/46583e94a4f4601c053084d62ee57b6e936a888e)) +* :sparkles: 测试 ([fb6c1b0](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/fb6c1b07475b1a4cc7b08b4834002a7ed6416bf5)) +* :sparkles: 测试 ([777d68f](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/777d68f2a80c08a3f1d7ed92d7026503971bb77a)) +* :sparkles: 测试 ([ca9713b](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/ca9713b646865d9381010ce15ad1f70d73782ee6)) +* :sparkles: 测试打包mock ([25dfb60](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/25dfb6046250f208ddc45f4fdc731b957bedae35)) +* :sparkles: 测试提前加载 ([f5360d4](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/f5360d4723b6b1c68a02149560bde32ef11c5414)) +* :sparkles: 测试生产环境mock ([76df4c8](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/76df4c8dcd28ae8a08c6a7bcb08364449feb407d)) +* :sparkles: 测试路由 ([889a971](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/889a971991832bb000853dde85866050cacfc581)) +* :sparkles: 测试路由bug ([f389274](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/f389274f32c6184c30135c030ebfc7f278b37355)) +* :sparkles: 添加主题选择器 ([04cda0f](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/04cda0fbbed090a4ee9b11d9d4c6393a2cda4d10)) +* :sparkles: 添加全局Card 类名,添加按钮wave动效 ([e39a668](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/e39a668833b7b317dad3166d3371efc85eb65913)) +* :sparkles: 添加全局Paper样式 ([7c49824](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/7c498248e3c49b1f7bc14216a012b4d438c1d0a7)) +* :sparkles: 添加异步测试 ([bd18dda](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/bd18dda1ddcc0224f02dc2781e097b667a52ce71)) +* :sparkles: 添加用户管理模块,修改meta参数,支持自定义图标大小 ([57401c1](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/57401c195126623defd074297a5c50f3861a5c70)) +* :sparkles: 添加登录页标题, 错误页面icon ([67d356c](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/67d356cbdd0aa0bcd588022055f7a643691f1adb)) +* :sparkles: 添加自定义token类型定义,完成登录页设计 ([1124c0d](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/1124c0d481f4702680a7490e3963bb4d40fa6d55)) +* :sparkles: 添加首页欢迎面板 ([9727b16](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/9727b16e91bb3f5b16e67deec3284730b60c7d66)) +* :sparkles: 登录页修改 ([12f1295](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/12f129555525ef49f83544dcc47707e4d9c3b196)) +* :sparkles: 自动更新版本 ([eccde83](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/eccde830e931c60cfaef84029be95ff3621fbbaa)) +* :sparkles: 设计用户Card ([0f97588](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/0f975886c64c49cea25f6914f00a9c94cdd98748)) +* :sparkles: 请求admin分支提交记录 ([292dbd8](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/292dbd85f4e144687de344f3e7a94f0b0d65e06c)) +* :sparkles: 还原 ([433111a](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/433111a3953ce4694814c2be83e3e6c0a56b7249)) +* :sparkles: 降低react-router-dom版本 ([b8e234f](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/b8e234f4044389f9293ea0c7b3a15330c669704b)) +* :sparkles: 首页统计 ([3b42a98](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/3b42a9867ab15809fc7c94e7ff582ffc2ef153fe)) +* 还原路由 ([a0efb2e](https://github.com/anyone-yuren/react-antd-admin-pnpm/commit/a0efb2e2d791cac6d6d9586a68a95e44fc20f8ab)) + # [1.1.0](https://github.com/anyone-yuren/pnpm-monorepo-mui/compare/v1.0.0...v1.1.0) (2023-12-15) diff --git a/Readme.md b/Readme.md index 296e7adb..b2a05004 100644 --- a/Readme.md +++ b/Readme.md @@ -25,8 +25,9 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [x] pnpm turbo vite 集成方案搭建 - [x] 配置代码提交规范与自动化部署 -- [ ] antd5组件库开发 -- [ ] 分包设计与应用设计 +- [x] antd5组件库开发 +- [x] 分包设计与应用设计 +- [x] 自动化tag版本打包 - [ ] 微前端接入 - [ ] 模板编写 @@ -47,13 +48,13 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 "antd": "^5.x","vite": "^5.x","echarts-for-react": "^3.x","antd-style": "^3.x","@react-spring/web": "^9.x","zustand": "^4.x" ``` --> -- [ ] 框架设计 +- [x] 框架设计 - [x] 主题设计 - [x] 登录页设计 - [x] 状态管理(zustand) - [x] 路由设计,使用loadable-compoment替代React.lazy - [x] 主题控制面板 -- [ ] 模块高亮搜索 +- [x] 模块高亮搜索 ## 分支管理 @@ -71,10 +72,14 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 npx @chenshuai2144/less2cssinjs less2js -i src ``` +3. 关于本地运行项目,出现gbeata未定义的问题,起初在设计组件库阶段,并没有打算直接在项目包中直接应用workspace中的源码,所以,你可以在执行 ` pnpm dev --filter gbeata-admin` 之前,请先将gbeata组件包打包生成lib目录, 执行` pnpm build --filter gbeata` + ## 贡献 -欢迎 PR,您可以直接找我讨论,QQ: 1003473088,如果这是一个很大的变化! +欢迎 PR,当然您也可以扫码进群讨论,或者直接联系我,QQ: 1003473088,如果这是一个很大的变化!欢迎您的加入! + + diff --git a/apps/admin/package.json b/apps/admin/package.json index c41f4762..75279713 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -1,5 +1,5 @@ { - "name": "react-admin-design", + "name": "gbeata-admin", "version": "0.0.0", "scripts": { "dev": "vite", diff --git a/apps/admin/src/views/home/components/data.ts b/apps/admin/src/views/home/components/data.ts new file mode 100644 index 00000000..9e2e35a8 --- /dev/null +++ b/apps/admin/src/views/home/components/data.ts @@ -0,0 +1,1710 @@ +export const juejinData = [ + { + article_id: '7303048156967026714', + article_info: { + article_id: '7303048156967026714', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640407484334000, 6809640419505209000, 6809640793381274000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/84274f1176744240b47471a79d920a2f~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1276&h=638&s=1250001&e=gif&f=46&b=d3d9dc', + is_gfw: 0, + title: '3D数字孪生 - 智能仓储管理平台-开源啦💐', + brief_content: + ' 截止目前,相信你在社区上很难找到开源且真正对前期的你学习有帮助的案例和文章,之所以做这类分享,纯粹的是用爱发电,新的领域学习,让我痛苦的度过了好多个夜晚,值得庆幸自己的思路和计划都能按照设想的方案实', + is_english: 0, + is_original: 1, + user_index: 0, + original_type: 0, + original_author: '', + content: '', + ctime: '1700465692', + mtime: '1700532628', + rtime: '-62135596800', + draft_id: '7302787905043693577', + view_count: 397, + collect_count: 5, + digg_count: 7, + comment_count: 0, + hot_index: 26, + is_hot: 0, + rank_index: 1.2e-7, + status: 1, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 4, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1012, + read_time: '3分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546526, + tag_id: '6809640407484334093', + tag_name: '前端', + color: '#60ADFF', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 1, + ctime: 1435971546, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 437520, + concern_user_count: 674239, + }, + { + id: 2546535, + tag_id: '6809640419505209358', + tag_name: '开源', + color: '#6EBD68', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/553ecacd498946a9a6d9.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1435972427, + mtime: 1704363524, + id_type: 9, + tag_alias: '', + post_article_count: 11756, + concern_user_count: 249816, + }, + { + id: 2546806, + tag_id: '6809640793381273614', + tag_name: 'three.js', + color: '#000000', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1488865919, + mtime: 1704360273, + id_type: 9, + tag_alias: '', + post_article_count: 1781, + concern_user_count: 28094, + }, + ], + user_interact: { + id: 7303048156967027000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7299709109879324691', + article_info: { + article_id: '7299709109879324691', + user_id: '2682464101469480', + category_id: '6809637776263217160', + tag_ids: [6809640407484334000, 6809640402103042000, 6809640419505209000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/941af6d2401c4600b2867fc314dbbeaf~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1886&h=1186&s=505219&e=png&b=260947', + is_gfw: 0, + title: '仿mac系统交互设计的车载Pad操作系统', + brief_content: + '时隔100天,我又来水文了!3D数字孪生的系列好多小伙伴都感兴趣,项目在10月就已经完结了,后续我会将继续补充如何完整的做完一个3D数字孪生项目', + is_english: 0, + is_original: 1, + user_index: 11.437480020762536, + original_type: 0, + original_author: '', + content: '', + ctime: '1699636366', + mtime: '1699778058', + rtime: '1699778058', + draft_id: '7299506825875226661', + view_count: 2077, + collect_count: 10, + digg_count: 15, + comment_count: 2, + hot_index: 120, + is_hot: 0, + rank_index: 0.01209184, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 2, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1841, + read_time: '6分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637776263217160', + category_name: '代码人生', + category_url: 'career', + rank: 7, + back_ground: '', + icon: '', + ctime: 1553759544, + mtime: 1553759548, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 7, + }, + tags: [ + { + id: 2546526, + tag_id: '6809640407484334093', + tag_name: '前端', + color: '#60ADFF', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 1, + ctime: 1435971546, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 437520, + concern_user_count: 674239, + }, + { + id: 2546522, + tag_id: '6809640402103042061', + tag_name: '前端框架', + color: '#F2AB5B', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/f7a198f1e1aeb6d79878.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1435964339, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 7744, + concern_user_count: 326495, + }, + { + id: 2546535, + tag_id: '6809640419505209358', + tag_name: '开源', + color: '#6EBD68', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/553ecacd498946a9a6d9.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1435972427, + mtime: 1704363524, + id_type: 9, + tag_alias: '', + post_article_count: 11756, + concern_user_count: 249816, + }, + ], + user_interact: { + id: 7299709109879325000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7256964915133694008', + article_info: { + article_id: '7256964915133694008', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640407484334000, 6809640404791591000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b5542f51a3274f8791ce1d8257dc4039~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '制造业领域,我是如何被逼到做顶级架构设计的', + brief_content: + '什么是顶级?还是澄清下吧; 这里的顶级并非说“最牛&”、最高档次,而指的是在开发一个复杂系统或软件时的最高层次设计的过程。 接下来,我要介绍的是,我是如何被逼到从单业务系统到系统与系统层面的顶级设计。', + is_english: 0, + is_original: 1, + user_index: 10.070339420019154, + original_type: 0, + original_author: '', + content: '', + ctime: '1689652100', + mtime: '1689668573', + rtime: '1689668573', + draft_id: '7255491496831631416', + view_count: 1404, + collect_count: 21, + digg_count: 19, + comment_count: 6, + hot_index: 95, + is_hot: 0, + rank_index: 0.00212567, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 2, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 2360, + read_time: '8分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546526, + tag_id: '6809640407484334093', + tag_name: '前端', + color: '#60ADFF', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 1, + ctime: 1435971546, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 437520, + concern_user_count: 674239, + }, + { + id: 2546524, + tag_id: '6809640404791590919', + tag_name: '面试', + color: '#545454', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/85dd1ce8008458ac220c.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1435971430, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 46282, + concern_user_count: 465905, + }, + ], + user_interact: { + id: 7256964915133694000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7250318500882432057', + article_info: { + article_id: '7250318500882432057', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000, 6809640525595935000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3727534baa6a478e9bbcb30d7472d40f~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之相机控制器(五)', + brief_content: + '机器学习 oz@0xozram 9号在twitter上发了这样的一个短视频: 当然,这属于机器学习领域的内容,也就是大名鼎鼎的 google 在2015开源的 tensorflow,TensorFlo', + is_english: 0, + is_original: 1, + user_index: 9.463944942479607, + original_type: 0, + original_author: '', + content: '', + ctime: '1688108878', + mtime: '1688831884', + rtime: '1688831884', + draft_id: '7249765949742530597', + view_count: 2280, + collect_count: 24, + digg_count: 16, + comment_count: 5, + hot_index: 135, + is_hot: 0, + rank_index: 0.0027185, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 1, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1808, + read_time: '6分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546806, + tag_id: '6809640793381273614', + tag_name: 'three.js', + color: '#000000', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1488865919, + mtime: 1704360273, + id_type: 9, + tag_alias: '', + post_article_count: 1781, + concern_user_count: 28094, + }, + { + id: 2546612, + tag_id: '6809640525595934734', + tag_name: '机器学习', + color: '#616161', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/a066ea8ec92485ff84e8.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1440889206, + mtime: 1704362750, + id_type: 9, + tag_alias: '', + post_article_count: 10146, + concern_user_count: 166781, + }, + ], + user_interact: { + id: 7250318500882432000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7248545082130169893', + article_info: { + article_id: '7248545082130169893', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000, 6809640497393435000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/05bba1c501124628a6bd11dc7f93a96a~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之相机(四)', + brief_content: + '承上 在第一篇# 3D数字孪生 - Three.js 项目介绍与基础环境搭建(一)有介绍,在使用 three/filber 的Canvas组件时,默认情况下,会自动添加初始化一个透视相机(Perspe', + is_english: 0, + is_original: 1, + user_index: 9.01959424539129, + original_type: 0, + original_author: '', + content: '', + ctime: '1687694967', + mtime: '1687748103', + rtime: '1687748103', + draft_id: '7248466120364343333', + view_count: 1752, + collect_count: 32, + digg_count: 22, + comment_count: 1, + hot_index: 110, + is_hot: 0, + rank_index: 0.0020533, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 1, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1576, + read_time: '5分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546806, + tag_id: '6809640793381273614', + tag_name: 'three.js', + color: '#000000', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1488865919, + mtime: 1704360273, + id_type: 9, + tag_alias: '', + post_article_count: 1781, + concern_user_count: 28094, + }, + { + id: 2546591, + tag_id: '6809640497393434632', + tag_name: 'Canvas', + color: '#F51A00', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/d21230e1c079d7706713.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1439500018, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 3106, + concern_user_count: 84113, + }, + ], + user_interact: { + id: 7248545082130170000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7246657502842945597', + article_info: { + article_id: '7246657502842945597', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1465296be96f41f58e9a2c9a35551736~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之场景材质(三)', + brief_content: + '接上文# 3D数字孪生 - Three.js 场景光源(二)最后的问题: “为何已关闭场景中所有光源,仍然有些面是亮的呢?” 我们不妨近距离的观察一下,打开场景中的方向光 DirectionalLig', + is_english: 0, + is_original: 1, + user_index: 8.52173105363898, + original_type: 0, + original_author: '', + content: '', + ctime: '1687251948', + mtime: '1687335742', + rtime: '1687335742', + draft_id: '7246564869222580282', + view_count: 1869, + collect_count: 24, + digg_count: 13, + comment_count: 0, + hot_index: 106, + is_hot: 0, + rank_index: 0.00191366, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 4, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1284, + read_time: '4分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546806, + tag_id: '6809640793381273614', + tag_name: 'three.js', + color: '#000000', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1488865919, + mtime: 1704360273, + id_type: 9, + tag_alias: '', + post_article_count: 1781, + concern_user_count: 28094, + }, + ], + user_interact: { + id: 7246657502842946000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7246316652048269373', + article_info: { + article_id: '7246316652048269373', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/638de6b1ba4b48bab0229b70095e718e~tplv-k3u1fbpfcp-watermark.image?', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目实战之场景光源(二)', + brief_content: + '前言 接下来的项目实战讲解过程中,有必要多花几个篇幅介绍一下项目中用到的两个库。 "@react-three/drei": "^9.70.3", "@react-three/fiber": "^8.1', + is_english: 0, + is_original: 1, + user_index: 9.158795645897236, + original_type: 0, + original_author: '', + content: '', + ctime: '1687179552', + mtime: '1687331693', + rtime: '1687239614', + draft_id: '7246311040267370556', + view_count: 1414, + collect_count: 19, + digg_count: 10, + comment_count: 2, + hot_index: 82, + is_hot: 0, + rank_index: 0.00151119, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 2, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1143, + read_time: '4分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546806, + tag_id: '6809640793381273614', + tag_name: 'three.js', + color: '#000000', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1488865919, + mtime: 1704360273, + id_type: 9, + tag_alias: '', + post_article_count: 1781, + concern_user_count: 28094, + }, + ], + user_interact: { + id: 7246316652048269000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7244894506305536057', + article_info: { + article_id: '7244894506305536057', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640793381274000, 6809640357354013000, 6809640407484334000], + visible_level: 0, + link_url: '', + cover_image: + 'https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6dac5e4b92d048409629828852b2d79d~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1919&h=959&s=1380008&e=png&b=e0dede', + is_gfw: 0, + title: '3D数字孪生 - Three.js 项目介绍与基础环境搭建(一)', + brief_content: + '3D数字孪生,生成3D可视化仓库地图,实时监控仓库库位坐标、调度任务状态、车辆位置等信息。 根据调度信息,动态展现小车任务状态', + is_english: 0, + is_original: 1, + user_index: 8.905619350311529, + original_type: 0, + original_author: '', + content: '', + ctime: '1686886155', + mtime: '1702997867', + rtime: '1686908640', + draft_id: '7244785030567886907', + view_count: 9415, + collect_count: 186, + digg_count: 86, + comment_count: 33, + hot_index: 589, + is_hot: 0, + rank_index: 0.00966501, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 10, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1859, + read_time: '6分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546806, + tag_id: '6809640793381273614', + tag_name: 'three.js', + color: '#000000', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/edf74d6b6b4f5121731c.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1488865919, + mtime: 1704360273, + id_type: 9, + tag_alias: '', + post_article_count: 1781, + concern_user_count: 28094, + }, + { + id: 2546490, + tag_id: '6809640357354012685', + tag_name: 'React.js', + color: '#61DAFB', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/f655215074250f10f8d4.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1432234367, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 30277, + concern_user_count: 292781, + }, + { + id: 2546526, + tag_id: '6809640407484334093', + tag_name: '前端', + color: '#60ADFF', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/bac28828a49181c34110.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 1, + ctime: 1435971546, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 437520, + concern_user_count: 674239, + }, + ], + user_interact: { + id: 7244894506305536000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, + { + article_id: '7235027795393462333', + article_info: { + article_id: '7235027795393462333', + user_id: '2682464101469480', + category_id: '6809637767543259144', + tag_ids: [6809640497393435000], + visible_level: 0, + link_url: '', + cover_image: '', + is_gfw: 0, + title: 'konva绘制图像标定', + brief_content: '视频流标定工具,矩形与多边形绘制。仓库地图动态标注摄像机位置。konva.js konva-react实战', + is_english: 0, + is_original: 1, + user_index: 0, + original_type: 0, + original_author: '', + content: '', + ctime: '1684553355', + mtime: '1684571408', + rtime: '1684571408', + draft_id: '7234887157000454202', + view_count: 1418, + collect_count: 9, + digg_count: 2, + comment_count: 2, + hot_index: 74, + is_hot: 0, + rank_index: 0.00101618, + status: 2, + verify_status: 1, + audit_status: 2, + mark_content: '', + display_count: 0, + is_markdown: 1, + app_html_content: '', + version: 3, + web_html_content: null, + meta_info: null, + catalog: null, + homepage_top_time: -62135596800, + homepage_top_status: 0, + content_count: 1222, + read_time: '4分钟', + }, + author_user_info: { + user_id: '2682464101469480', + user_name: 'G_大雨', + company: '', + job_title: '', + avatar_large: + 'https://p3-passport.byteacctimg.com/img/user-avatar/c2fb4874b00b9202d5d26eb6624101d3~300x300.image', + level: 3, + description: '', + followee_count: 10, + follower_count: 129, + post_article_count: 9, + digg_article_count: 48, + got_digg_count: 190, + got_view_count: 22026, + post_shortmsg_count: 5, + digg_shortmsg_count: 0, + isfollowed: false, + favorable_author: 0, + power: 971, + study_point: 0, + university: { + university_id: '0', + name: '', + logo: '', + }, + major: { + major_id: '0', + parent_id: '0', + name: '', + }, + student_status: 0, + select_event_count: 0, + select_online_course_count: 0, + identity: 0, + is_select_annual: true, + select_annual_rank: 0, + annual_list_type: 0, + extraMap: {}, + is_logout: 0, + annual_info: [], + account_amount: 0, + user_growth_info: { + user_id: 2682464101469480, + jpower: 971, + jscore: 929.5, + jpower_level: 3, + jscore_level: 5, + jscore_title: '先锋掘友', + author_achievement_list: [], + vip_level: 0, + vip_title: '', + jscore_next_level_score: 2000, + jscore_this_level_mini_score: 500, + vip_score: 0, + }, + is_vip: false, + become_author_days: 0, + collection_set_article_count: 0, + recommend_article_count_daily: 0, + article_collect_count_daily: 0, + user_priv_info: { + administrator: 0, + builder: 0, + favorable_author: 0, + book_author: 0, + forbidden_words: 0, + can_tag_cnt: 0, + auto_recommend: 0, + signed_author: 0, + popular_author: 0, + can_add_video: 0, + }, + }, + category: { + category_id: '6809637767543259144', + category_name: '前端', + category_url: 'frontend', + rank: 2, + back_ground: 'https://lc-mhke0kuv.cn-n1.lcfile.com/8c95587526f346c0.png', + icon: 'https://lc-mhke0kuv.cn-n1.lcfile.com/1c40f5eaba561e32.png', + ctime: 1457483942, + mtime: 1432503190, + show_type: 3, + item_type: 2, + promote_tag_cap: 4, + promote_priority: 2, + }, + tags: [ + { + id: 2546591, + tag_id: '6809640497393434632', + tag_name: 'Canvas', + color: '#F51A00', + icon: 'https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/leancloud-assets/d21230e1c079d7706713.png~tplv-t2oaga2asx-image.image', + back_ground: '', + show_navi: 0, + ctime: 1439500018, + mtime: 1704364179, + id_type: 9, + tag_alias: '', + post_article_count: 3106, + concern_user_count: 84113, + }, + ], + user_interact: { + id: 7235027795393462000, + omitempty: 2, + user_id: 0, + is_digg: false, + is_follow: false, + is_collect: false, + collect_set_count: 0, + }, + org: { + org_info: null, + is_followed: false, + }, + req_id: '2024010418301169F36BCDF5FB8E1AB87B', + status: { + push_status: 0, + }, + theme_list: [], + extra: { + extra: '', + }, + }, +]; diff --git a/apps/admin/src/views/home/components/juejinTable.tsx b/apps/admin/src/views/home/components/juejinTable.tsx new file mode 100644 index 00000000..b27f6f9e --- /dev/null +++ b/apps/admin/src/views/home/components/juejinTable.tsx @@ -0,0 +1,74 @@ +import { Card } from 'antd'; +import { GSearchTable } from 'gbeata'; +import React, { useState } from 'react'; + +import { juejinData } from './data'; + +import type { GSearchTableField } from 'gbeata/lib/GSearchTable/g-search-table'; + +const fields: Array = [ + { + title: '文章标题', + key: 'title', + search: true, + render: (text, record) => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { title, article_id } = record.article_info; + return ( + + {title} + + ); + }, + }, + { + title: '简介', + key: 'brief_content', + render: (text, record) => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { brief_content } = record.article_info; + return brief_content; + }, + }, + + { + title: '阅读数', + width: '120px', + key: 'view_count', + render: (text, record) => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { view_count } = record.article_info; + return view_count; + }, + }, + { + title: '点赞数', + key: 'digg_count', + width: '120px', + sort: true, + render: (text, record) => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { digg_count } = record.article_info; + return digg_count; + }, + }, + { + title: '收藏数', + key: 'collect_count', + width: '90px', + render: (text, record) => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { collect_count } = record.article_info; + return collect_count; + }, + }, +]; + +export default function JuejinTable() { + const [data] = useState(juejinData); + return ( + + + + ); +} diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 72733427..e91e22e1 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -6,6 +6,7 @@ import UserCard from '@/components/UserCard'; import { AnalyzeCard } from './components/AnalyzeCard'; import CommitTable from './components/CommitTable'; +import JuejinTable from './components/juejinTable'; import SlickBox from './components/SlickBox'; import useStyles from './index.style'; @@ -65,10 +66,11 @@ const HomePage: FC = () => { - + + {/* 其实呢,大部分普通人的生活,就是在做那些零零碎碎的小事,工作也好,生活也好,哪有那么多惊天动地的大事呢,只不过我们很多时候并没有用心,又或者我们太忙碌,大焦虑,无法从这些小事中品出温情,获得满足。 借此记录自己每天的点点滴滴,充实自己。 - + */} diff --git a/apps/admin/src/views/user/components/friends/index.tsx b/apps/admin/src/views/user/components/friends/index.tsx index 3fefb556..ce2bdb70 100644 --- a/apps/admin/src/views/user/components/friends/index.tsx +++ b/apps/admin/src/views/user/components/friends/index.tsx @@ -1,30 +1,110 @@ -import { Card, Checkbox, Col, Row, Select, Switch } from 'antd'; +import { DeleteOutlined, EditOutlined, MoreOutlined } from '@ant-design/icons'; +import { Avatar, Button, Card, Col, Dropdown, Flex, Row, Space, Typography } from 'antd'; +import { SvgIcon } from 'ui'; +import travel_3 from '@/assets/images/travel_3.jpg'; + +import useStyles from '../styles'; + +import type { MenuProps } from 'antd'; import type { FC } from 'react'; +const { Title, Text } = Typography; + +export interface PFriendsItem { + avatar: string; + name: string; + title: string; +} + export interface PFriends {} -const Friends: FC = () => ( - <> - - - - Checkbox -