Compare commits

...

14 Commits

13 changed files with 1597 additions and 363 deletions

286
CHANGELOG.md Normal file
View File

@ -0,0 +1,286 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### 0.0.2 (2025-09-26)
### Features
* 创建企业逻辑对接 ([b0f62ee](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b0f62eef87003998e5d5c013c3a8b02b176105e4))
* 1.封装多行标签展开收起组件; 2.首页开发 ([a2bac07](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a2bac07e85672ceb4cd4f46a59bcc4690ec68bce))
* 编辑账号添加cookie字段 ([2bd745c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/2bd745ce83e688764b8feb01aa13b3eb45032fbe))
* 标签管理 ([1176740](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1176740008d230237e4751a12b33077de6152a53))
* 产品菜单路由权限 ([69a2043](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/69a2043762ff07e16b715f80142a9558fffb0f28))
* 产品走查调整 ([866f8bb](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/866f8bba52848d6b511713431a272df014c9fe84))
* 初始化内容稿件模块 ([4adcfcc](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4adcfcc38726fedeb3cda97d2713fb769faa1687))
* 初始化素材中心页面路由结构 ([5295b3a](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5295b3a00c1dd8a628efc6ac8ae248e7bfbbddb1))
* 初始化投放账户管理页面 ([5ca0823](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5ca0823cdd4a9851b7a47eb35702c50413a37c10))
* 初始化下载中心弹窗 ([f8f4f3f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f8f4f3fd43b12258f21a95712e20c38800e4d1be))
* 初始化项目管理列表 ([f874ed1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f874ed114fe014c32196502070bfd767b6f67cae))
* 处理二维码生成失败状态 ([c341769](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/c341769ba158f6e6d706f2f26dfb0771afa681c6))
* 导入提示弹窗 ([a0a410e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a0a410e9642c7c59c46de4a63fd810424b3661e4))
* 导入投放账户修改为异步逻辑 ([54cf71d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/54cf71d2a8cdf7332bc807f172bff98677abb662))
* 导入账号后轮询任务状态 ([4dcc4fd](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4dcc4fddc43fc585dc0342f64117f3ede58ac048))
* 登录接口错误信息码调整 ([9dff1f6](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/9dff1f61f3f9038a29bcea3ae859b532669c1ca5))
* 登录页面 ([c5b45f9](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/c5b45f945b4c69ae0a0dfa3487cfd088d46add3f))
* 登录注册 ([32f2d13](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/32f2d139d0a498654c11be1a13cd12b015ff609d))
* 登录组件文件位置调整 ([ae400a0](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ae400a063c16c84b2daf339bd3505101ebc1f56c))
* 调整 ([847b96e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/847b96e0a63c834eac332e9b7ca9e8823e4221a6))
* 定义buttonform等组件样式 ([3976242](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3976242c484026f73fde1a82f5f5242e180b508e))
* 对话逻辑调整、历史对话接口联调 ([1b311b1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1b311b105265f33c905cf7b0b00cee3c5cf241ad))
* 对话式首页接口对接,逻辑调整 ([99fd2c9](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/99fd2c935bd9fb57b92c499ff64d012b050ff59d))
* 对接ai审核接口 ([74b11af](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/74b11af2672080964c989169e4b789922261db06))
* 发送验证码接口提示处理 ([2098b5e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/2098b5e1e023c05d20d123ce3dc73967df1f56b5))
* 分享内容稿件 ([3cc5c2e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3cc5c2e2d38d77146d5bd2ce88d435d9ece8b881))
* 分享内容稿件 ([ba658f1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ba658f1293a8f2a2c6deb8bcc1667ec9da8facec))
* 分享内容稿件 ([5aa7ce9](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5aa7ce9d51419292840b6a4b4047c53566db5fa9))
* 分享页评论回复删除 ([b1a260f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b1a260f9a2f1444d1ced746afd5fae89612e2218))
* 分页逻辑处理 ([3427b4e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3427b4e550c6f4d7a17682f359be4cfe54778689))
* 分组管理 ([bbdd3cb](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bbdd3cb526cfa54db3a5c6d54e0040e2569280e1))
* 封装表格分页hooks ([18a829c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/18a829cccb2b74e1fdc1b25d757696b258432e26))
* 封装获取图片主色调指令 ([6bffe3c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6bffe3cfe9404cb78ef458cbe45e24e558c04a02))
* 稿件评论 ([e71a6a2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e71a6a2a3e7d5057894a4cf552984e4a26a060d9))
* 稿件详情 ([78c5f65](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/78c5f65d3dea81d555e0ff8e3dc970e4252145fe))
* 稿件详情处理 ([96b6c21](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/96b6c211d79fd9777bb457b3845170198a3ee912))
* 更换Pagination组件 ([2d1e002](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/2d1e002204cdd5ff8e6b5a1d52bcbb4faa019cea))
* 更换radioradiogroup ([d3169fd](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d3169fd68bd8d7f4f201986b119aafc290052ea0))
* 更新 .gitignore 文件 ([782f065](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/782f065b358ae65c80c0325b7ab22a23547f3f63))
* 更新 API 地址并优化代码格式 ([05f1281](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/05f1281197846b09eb09b9757b4a629d7c5374df))
* 更新表单和按钮样式,优化验证码组件逻辑 ([d97ac5f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d97ac5f7976ce4320940c00192dd80ff9aeb4e79))
* 更新聊天视图样式和功能增加首页任务选择API及数据展示 ([ee19f7f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ee19f7fada9d9eac995e11a4452742abbcee4fd7))
* 关联内容稿件 ([1359a42](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1359a4292fe4d8b2e0524a161627835c8fb8b90a))
* 关联平台账号,关联渠道账户 ([8fc170e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/8fc170e40c37e20f266407e9203989eeb57cb561))
* 管理中心菜单栏调整 ([248bf11](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/248bf113b1bf5066582e348137c9e3614fd4264a))
* 管理中心路由调整、选择公司逻辑调整 ([1e2e8db](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1e2e8db5648082fed194d78d6f8a919f019c7cd4))
* 回复评论 ([83dc998](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/83dc99856a153df1fd4b68c6ccb6d045ad45e860))
* 会话详情 ([a95f506](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a95f506c5ec8be2a9d81027bdc49c60c08a96ae0))
* 巨量/b站平台添加子账户 ([031eabf](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/031eabf53ecabcb94ee04e54e2e842bb497b6154))
* 卡片增加最后授权时间 ([9f840f2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/9f840f2ecd149c2b158e1d602ad12ac89b1f3b33))
* 卡片loading ([f965d27](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f965d27aa057f8fcfa60fe7aeec8ea198c9f1095))
* 客户分享链接列表 ([1b1c113](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1b1c1133fa441a41f37ba5ba8357d534b3843434))
* 框架样式调整 ([f92a5ab](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f92a5ab3060daa57c86d464f472790c66eb7a91b))
* 灵机空间不显示header菜单 ([aeaec28](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/aeaec286aaea5f4cb2046cdd777c3ff387d6d639))
* 路由守卫调整/ ([f8082b1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f8082b1a861ee316cd0a60cc92140c873bc7ac89))
* 轮播图交互调整 ([ec661ed](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ec661ed67df5eeea85e8548c59ac4d6773b8de35))
* 轮询查询未读消息 ([b1b2937](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b1b29372952d96b812ad9975b740d703c634e18c))
* 逻辑调整 ([803489e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/803489e7f325b82a8c31c877d6bdb5804fafe661))
* 媒体账号/投放账户增加【所属项目】相关逻辑 ([97800c6](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/97800c62c93d21dcd063c4f0a91ed04e0aaae67a))
* 默认跳转第一个子菜单 ([0f91d00](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/0f91d008a7a1cd81ba5f1086d5e96c0b790ae997))
* 内容稿件列表、上传内容、通用Textovertips组件封装 ([1192331](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1192331a88e3b9c24f3367ab2b5d643135cfe11a))
* 内容稿件列表、整理文件目录结构 ([98a3dfc](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/98a3dfc5bc963d5c77b94afd13ae9ff5f2be8a6e))
* 内容稿件列表筛选栏 ([b541ea8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b541ea8523788798dc38208b91544ef82d3c6aac))
* 内容稿件列表相关接口对接 ([4f2ebd2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4f2ebd2cf4c554df8b1da08a871be3011ee132c3))
* 内容稿件上传、编辑 ([a5dff7c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a5dff7c75c346694d4c1b92bdf147dc047a4da78))
* 内容稿件审核 ([dc739aa](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/dc739aa0939d17508862aa4038e457849b75711f))
* 内容稿件审核 ([83bee2c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/83bee2ca6dcb7e0a32b170f5da542dd87702f743))
* 内容稿件审核列表 ([3fe65b1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3fe65b11357f57e4e34dbb84a4b0660c606a01c9))
* 内容稿件审核列表 ([bc0e9b1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bc0e9b17535424bb569351cf1b051a35ebcfc02b))
* 内容审核-写手端 ([310e51c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/310e51cf4d1fd17d278e1fc035a064b35976f063))
* 内容审核表格初始化 ([e3c3e7d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e3c3e7d0cb76602a069fff24e5c85b55931c5f34))
* 内容审核写手端-替换接口,删除无用代码组件逻辑 ([32f5e7e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/32f5e7e13bcb5a87d2dbd1ed0c617760eaf67fbd))
* 配置打包指令 ([6baa7fe](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6baa7fe26f269855853b9b5b2195c5b0bf5e9f1a))
* 批量标签/分组 ([62cb115](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/62cb115168538ea40689995fa94b5761785c9be4))
* 批量操作账号 ([22f5f63](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/22f5f63952a940a6b970c260d6ea481f76520bcf))
* 批量更新任务结束后update更新时间 ([05d6526](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/05d6526cf394bee4564e680c96d6163b56b27cdc))
* 批量上传文件, ([b932979](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b932979ca5e3a0b8b81484c949df87b3fa795ff6))
* 批量下载任务 ([9e5f6ae](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/9e5f6aee1c1bb78a29f5948d90350d4f1626da9e))
* 批量下载失败-重新下载 ([c56e047](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/c56e047c136fd21842d4c028a6300892d0f464df))
* 切换企业 ([24d31db](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/24d31dbabec31d442a057e897db7c85ddd10d463))
* 请求失败关闭sse ([46f3102](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/46f31025b847b48cee51d9627da2a3c69ec5dc1a))
* 请求增加requestid ([7336fe5](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/7336fe524dbd52be91a96a2b8bf093b1a41e3a08))
* 区分媒体账号/投放账户的状态组件 ([cb5fdad](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/cb5fdad264d49c45a943f248318656a1de92d582))
* 去除unplugin-icons插件相关逻辑引入vite-plugin-svg-icons插件封装SvgIcon组件 ([650744e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/650744ea3c43964a7dada51d858e4dd895ca59d3))
* 全局获取userinfo、数据持久化、store处理 ([2df04db](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/2df04db176a3c3e2811ad826f20aef3ab52b8a47))
* 任务中心-导入/导出 ([5d9dfc2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5d9dfc22bec00900d7f42b60bbbd21ff1f61d68d))
* 任务中心-重做任务 ([206679d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/206679df63aea2730cc429e9251dcd578dbe6dce))
* 删除旧版路由配置,内容稿件审核旧版文件 ([11f8378](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/11f8378f7738f7d7cc1dacc75238c6b2f1f8bf7a))
* 删除评论权限控制 ([7d01dec](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/7d01dec083406bd31f505d19483c5eb312c6ef6e))
* 删除无用组件,组件库替换 ([b874440](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b8744409ddfbcae640cad2856a1a495d9c907e57))
* 上传稿件处理 ([f12c6dc](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f12c6dc1c226d80d3794e88938319dad23e2448d))
* 上传视频/图片处理 ([2068408](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/206840835604ae40d0bcd02011208423ae204e33))
* 上传页面逻辑调整 ([fc891f6](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/fc891f623973fd597be356334c7bd651c0b49857))
* 申请试用权限调整 ([f55a30b](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f55a30bbe08ec915e64e4a476cc08353fbc8138c))
* 深度思考过程调整 ([69b6640](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/69b66405a13ceeaa288a656e8aee98d331ebf4c2))
* 审核列表抽屉 ([94e3f8f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/94e3f8fa8151908d20fa7348a3f1208ed295e552))
* 升级vue3版本和router版本主框架调整页面样式统一 ([f14f216](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f14f216d6cb93407b3a6de9f244002140e31e838))
* 生成写手链接 ([fb58148](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/fb581484b68c73aab4b93db9ba7a24cb2257dd4f))
* 视频上传 ([afa9154](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/afa91546e9b3221343a052c772d929dfdf900ec8))
* 视频上传处理 ([f182d08](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f182d089836cb5bbc05e778382220fa213b7e03f))
* 首次渲染滚动到底部 ([c3c504c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/c3c504c9d9f989b989d3428c2c07fecf9faefdbc))
* 首页调整 ([a4d7bed](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a4d7bed132aad2dd4aab5c1d104145529d124101))
* 首页任务选择 ([a9c700d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a9c700dcc2fdf2ca383662b789a8ac0301855a56))
* 授权/重新授权逻辑 ([62ac643](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/62ac6434e82b85bbfb0f2328142f2b7338bf7b21))
* 授权账户成功后更新数据 ([0bbdbb5](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/0bbdbb5d93f6c3e2af68f077955762fa88e30f28))
* 数据看板 ([3d7fcd2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3d7fcd2c62c06562c040477bbac73d210b991d7b))
* 素材中心成品库-客户端处理 ([03e85b8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/03e85b8e18cfadc868e7876b429dabd2bcd3990c))
* 素材中心成品库-写手端处理 ([5f08222](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5f082227d77ebb297873ccee5e06d51e48bdde0c))
* 添加入口 ([60aee75](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/60aee750fbfcc45e9cdaf9c301f74281dd0eb44f))
* 添加停止代理任务功能并优化样式 ([4a4d8d4](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4a4d8d40fb5f00676b978a7c3cafe5982e7d0338))
* 添加图标和路由配置 ([5c4fcc8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5c4fcc84b883cb757192c47a86e1cbb7050ed9dd))
* 添加文本溢出提示组件并调整表格列宽 ([6cccf0a](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6cccf0aa179fbe6e3f948ab70d463025c4d1ab40))
* 添加文件类型扩展名常量和优化表格列显示 ([21c3710](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/21c3710c71958f6da3504fbdc3189e268b2148e8))
* 添加原料库上传功能和相关组件 ([0f6f179](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/0f6f1790cc7900f1dac453dd2bf0399f636240d5))
* 添加账号 ([cd694af](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/cd694afd2b9c9645d279fa124c74c5483c47137c))
* 添加jspdf依赖用于PDF生成功能 ([af1a191](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/af1a19191f035dcbf4435576a203664e78277505))
* 跳转链接带二维码 ([b2e4e87](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b2e4e8718a05f51bd4bb05989dcea1a176634255))
* 同步数据/批量同步 ([f14b9f8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f14b9f898d978d8da8a95fe9879a7a4c0a1929d6))
* 同步数据loading ([0398c18](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/0398c18dbf4c7d4bf59ab80d0ce165545a810f74))
* 统一分页组件样式 ([7570ce1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/7570ce1ed030551f4cdeb790d74faff70497e716))
* 统一获取app-routes方法 ([71036cd](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/71036cd1aefda3fe554bbc427a0a67edab587604))
* 统一接口请求错误response拦截逻辑 ([937d396](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/937d396e52bba7b519b47e0cbd1256ef5e07a96e))
* 统一button4种样式primary/outline/text/default ([f154534](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f154534bb946a4e9e2cde9b67afdade1182721db))
* 统一input、select、picker等组件样式 ([98d8f2b](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/98d8f2baba2c2cfa741567be7da785bfdd742be2))
* 头像裁剪 ([6bb20f8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6bb20f8c85816851a731b06e22e2e70cf1f679d7))
* 投放数据表格对接 ([852d735](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/852d735fd14351bcfbe4223035fc3921456489c2))
* 投放账户分组 ([07627b7](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/07627b79be038b1814f8adf973656241816ed882))
* 投放账户管理 ([ee129be](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ee129be37c0b9b020dd27c31495bf7752e5dc84b))
* 投放账户数据 ([36ff816](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/36ff816a501ce43ee32d87d84d4160605d305686))
* 图片拖拽问题处理VueDraggable不支持jsx写法 ([f185911](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f185911150541f8ec86104b7c3373031827c9db7))
* 退出登录 ([bb0f9da](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bb0f9da5c55b899eddabc7f7e86b4dfa3f29cb26))
* 违禁词高亮 ([0bed6fc](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/0bed6fce20767c656261afad2c4dde016b69e18b))
* 违禁词高亮与替换 ([c11af12](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/c11af12d21302b7f3740a492156f25f5ec55ad75))
* 未建立商联,首次登陆页面 ([8065fce](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/8065fce19d9a7aec047fa50b78856cc398fd2e5d))
* 文本检测 ([6b19d8d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6b19d8d5815b9a2fb6871554481161d4ef3d44d0))
* 文字检测 ([5f9f236](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5f9f236ccfbfc1fd778f8538edf8caada277b5e3))
* 下载中心 ([9411db3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/9411db383bb65425594546570d38271d855db392))
* 下载中心 ([6c73804](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6c73804bb466d64fbdddef8812bff60c88d1d735))
* 项目列表、统一4种状态color色值 ([8835c58](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/8835c5876de9ecbeeb820a1193e1a65ff2a79bef))
* 写手端逻辑处理 ([e6478e5](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e6478e588ca9bd0b311d28caf484eeecd9121de8))
* 写手端上传接口替换 ([32f6d92](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/32f6d92eee03398b00a38f33fb6bac0c1d4f59fa))
* 新媒体数据看板字段对接 ([fa2490a](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/fa2490a2a77cd4c022e45f538f511d1d3cc2cbe0))
* 新媒体账号管理 ([6d1f6b6](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6d1f6b69b19d7c71ae8018a4418f4829e7500716))
* 新媒体账号状态处理 ([03a3d73](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/03a3d73022272f35d83af7fefd0b99457d0b0d1a))
* 新增笔记链接 ([31e3dc0](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/31e3dc02557ccb3d7bf0ed15a596e888a4718f4d))
* 新增获取预上传文件后缀的API接口 ([bb791af](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bb791af9f83ecb4e8e411352b5259f2f6bb57fb0))
* 新增投放指南组件和优化品牌物料页面 ([6f62fd2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6f62fd21b32ac83ba019243c2066cd09c68d3fa5))
* 新增账户仪表盘组件和优化投放指南操作功能 ([b542be6](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b542be6f4321d22f310b26f1035368d180a0c826))
* 新增cookie值填写 ([f1a5240](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f1a5240689e3c772231566071de97b128cc4348d))
* 新增svg组件批量替换 ([16bd3a8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/16bd3a88e4f794f0c575af9573b3b5bb7b1abed7))
* 行业词云图 ([bb0a521](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bb0a5213e9b602a108af7e709e9d1dc2d3a5530d))
* 修改导出逻辑 ([f6bc3ba](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f6bc3ba9a58c1add1cec3b80de43ef8fc9c819bd))
* 修改登录页加入企业逻辑 ([865a62b](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/865a62b48d8b8d819585f951cabe786f8c3a939d))
* 修改稿件审核id逻辑 ([733c9c3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/733c9c3f69724ed1e0acfac0501b6a8eacae6e31))
* 修改获取路由列表 ([e9affd3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e9affd383b82abe706e928941a551f5664c0b512))
* 修改密码 ([581c533](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/581c533b0dfd2e0a455e5c22edf305b3e174d40d))
* 修改昵称,修改手机号 ([57c92f6](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/57c92f6676f54db898de61f37b3734a174d5888c))
* 修改sse调用 ([7466788](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/7466788ca4a607a8b733a14278c2906fbef635b0))
* 验证码请求限流处理 ([63939f0](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/63939f01d6d71b8647c43d13f9f156ac569be9c3))
* 样式调整 ([4e3c91f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4e3c91f4102e72ced9f74e62498a36259e52a162))
* 移除同步状态 ([d9ab331](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d9ab331b1925b26fb0980417509a342192d0856e))
* 优化删除标签模态框和上传组件新增文件预签名URL获取功能 ([d880ab3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d880ab3f65815cb04c28f4cd66f788966b6cf89e))
* 优化原料库上传功能和标签管理 ([27071f1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/27071f1423c6e2d6a9f95fbed58fe107c982ddae))
* 优化账号管理操作部分交互 ([8cf30e9](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/8cf30e9fbe70ddb3d3f3b842d5e7a858ca2b7194))
* 预加载字体包 ([0342ac4](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/0342ac4a8039fb15599c3b50bfae161e896b777b))
* 原料库 ([f7c3e72](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f7c3e7267d7dcde6dc5efcbcba7af34eb2c5c605))
* 原料库-添加标签管理功能和相关组件 ([d110c12](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d110c1290b5386ee8cf99021c2e82411fdec558b))
* 增加话题字段 ([6c9426d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6c9426d2f78e1ac1d0afc9a34424d479f081121c))
* 增加批量操作 ([7c06b1c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/7c06b1c33c003ee521b36a1b1c4884c7a7d32858))
* 增加数据更新时间字段 ([fed06e3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/fed06e3e28901cb76bd83550a50141835e200984))
* 增加项目管理接口 ([9913849](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/991384905a7cdea48f477e039688373fac16982f))
* 增加column-resizable属性 ([41b7696](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/41b7696a2c6d1b275f640c03de912686d6e3592f))
* 增加hideSidebar配置 ([633ae76](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/633ae766423ff2db12e395b727378f40ce21b39c))
* 增加HoverImagePreview组件 ([399c30a](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/399c30ab97e39aebec083cd06a9f72c78ee2898e))
* 增加Manrope字体包 ([f2c141f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f2c141f382d3f907f889473f5549ce6f255d4eb7))
* 增加no-data组件 ([5a017d3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/5a017d3335331ea94701bed2c4676e9462592fba))
* 增加Notificatio方法 ([40ab434](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/40ab43467daea4ea088e43bf2a117214dac72f61))
* 账号管理-授权、添加、分组管理、标签管理 ([94026df](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/94026df603f3ef0884c3d760dd7c0208e4f892e5))
* **账号管理:** 在添加账号模态框中实现标签的创建和选择功能 ([3c5261f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3c5261f177ab936b4669482ee02fc9432c26f6f3))
* 账号健康状态、统一组件逻辑 ([e630891](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e630891a19d92dcb4fab26721a60d8ab1d468d3d))
* 账号看板详情 ([3d45e35](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3d45e35e72137a2b12ac003317cdb739c9e7afae))
* 账号看板增加平台字段 ([0005637](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/000563708f3f0683e8c068a11d07c57d32106914))
* 账号批量操作 ([690d612](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/690d6123e2751cb31420f5476386316c3c694477))
* 账号数据看板、账户详情、投放数据 ([8f2085d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/8f2085d329405e2a3304bc7cf88a1b616aac980b))
* 账号数据看板/ 统一table、checkbox组件样式 ([a4719a7](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a4719a7a697ae1521c2397d6c3470e752d435ad9))
* 账号详情页新增最后授权时间 ([99f4130](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/99f4130455a999b8e2f410e4b92b1d435c3ba357))
* 账户授权 ([4580b37](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4580b37648b37d4e0074ab93c8cbb768ec3352f7))
* 重构sidebar菜单块逻辑 ([ae2d92c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ae2d92c1b8f68a5ff4503d025ebf842a87240871))
* 重新授权 ([9caa459](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/9caa45940dc9bb33d4197cf9ae78ca495e2fb919))
* 资产营销平台路由初始化 ([cbe98b7](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/cbe98b7b606f7499863ad96994da295c9f9fe1b5))
* 自定义列 ([6b524ed](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6b524ed5823d3714e8b26d5e0c81a248bdf25a6f))
* 走查-交互逻辑调整 ([8a65a17](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/8a65a172dec6e4d02e9297e0123cb76696a56f92))
* 组件库替换 ([05a6fdb](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/05a6fdb12cb11451aacc61f20edc2a04b0985dba))
* a-checkbox替换 ([316d418](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/316d41817e7c2952e13dcfa1a7b4aa4c482983ed))
* **account-manage:** 添加表格视图并优化现有组件样式和逻辑 ([6adefab](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6adefab9c347a5fe4cce3235a3c7c75e46d1b688))
* **account-manage:** 新增账号管理页面布局和功能 ([e0258b8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e0258b8dd390aa76888f1585bf5a15210f58fb11))
* **agent:** 调整路由配置为Agent主路由添加默认组件 ([bd89bfc](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bd89bfcadce3937ee67812c329f65a02dd01cf16))
* **agent:** 新增智能体应用功能 ([d7e56ff](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d7e56ff5fd998ae6d802d4e4151627d089df0587))
* **agent:** 新增智能体应用功能 ([f3ffb62](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f3ffb62dfd34a05f8a8111447bfbe9220e47be31))
* **agent:** 优化聊天历史组件样式和图片展示,调整卡片布局和图片处理 ([5326672](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/532667288828fe21f5e196f5eb492405b4bf7fe4))
* **agent:** 重构聊天页面布局调整路由配置优化Coze SDK集成逻辑 ([39d5f25](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/39d5f25b179188c6e54b4791a5d98d7202fcfe37))
* **agent:** 重构聊天页面实现新增Coze SDK集成和API接口优化路由权限配置 ([85617db](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/85617dbe1c6d243c4dee6860c849864948746ede))
* **agent:** 重构智能体页面样式和路由配置,优化历史对话组件 ([635fa72](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/635fa724404a6ca1ab80a992945af7c01355bc91))
* allowAccessRoutes只存name ([0319654](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/03196541d5d0c8067ba49b62a6cf216ef7b4aeb2))
* antd组件库相关样式 ([303cfee](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/303cfee43cce7d841435bd391432e1c8ad450dff))
* **api:** 添加中断智能体执行功能并优化代码注释 ([0898190](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/0898190d201f9588cea5cf5e50e6b85785e05554))
* bubble 组件调整 ([b517e5b](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b517e5b0753a6f2833eda57281b9a4ec5676efdc))
* bubble组件封装 ([779c6e9](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/779c6e9de26c3e3105e0f134105b2ea849c82710))
* bubble组件封装 ([3dd27de](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3dd27de995bd50a0e1595b22337735a887d8309e))
* button组件替换 ([8263123](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/8263123893aaf09388c9033743e1a4ea0eb1c767))
* chat首页渲染优化 ([2eda931](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/2eda931341e1c2e63b28b73f5c0ebb7fd8b27438))
* ci脚本 ([9867bb2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/9867bb2ae2f169eadaa852436c2dd3cd605af783))
* **container:** 在容器组件中添加标题右侧插槽并调整样式- 在 container.vue 中添加了 header 插槽,用于在标题右侧放置内容 ([20e5fa8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/20e5fa8ff7457bf8bfa373d43f4dc45aaaf9a181))
* Conversations封装、首页开发 ([2ceddfb](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/2ceddfb39cd0f161b4bfa432b68017a92cbd204b))
* delete token ([21784d7](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/21784d7a3b1b7903e38ba692b5ea36a3cfc61fc6))
* **enterprise:** 添加修改企业名称功能 ([57c908c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/57c908c50430aed0075094db8f807e984ff8b17c))
* **enterprise:** 添加子账号管理功能 ([814f06d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/814f06d2f3c7283a8177f4d1a1d3b890242a8b10))
* files接口结构调整对接 ([78d1fa0](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/78d1fa09be158d264f148dd307e6698ce548d8ec))
* form组件替换 ([4eec3f1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4eec3f12d505b9f91659aeaeab5f418e3e402903))
* hover-image-preview失效问题调整 ([e68700a](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e68700abe9748fa7aad78aa84661443d26f34b48))
* input、textare组件替换 ([7343c61](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/7343c61053c4100f602a69d5ef914e10ca323ca1))
* layout调整 ([80ebf83](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/80ebf83f7d7a61d418b96f66cbd29da5f8a9d6f9))
* **layout:** 添加企业邀请码加入功能 ([d135fda](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d135fda43e244e104d5ee96274956a237737d657))
* layout组件替换 ([6bc93e7](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6bc93e7bbd385fd7617582cddc9ea1580c8dbce1))
* **manuscript:** 新增稿件来源列并优化相关展示 ([252412e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/252412e0781bc342d31aa631d459baa6914a0fd3))
* **material-center:** 增加原料库编辑功能并优化列表展示 ([b16a844](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b16a8449cbbf3555010ab6b13c649fdb2dfbc1d7))
* md格式渲染 ([efa19a3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/efa19a3440c9de20c22258c03e32348581a6f441))
* **media-account:** 更新节点详情页数据展示逻辑 ([956db22](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/956db22bf06e9408bda44b821737bca03006a2c3))
* **media-account:** 添加作品详情页面并优化相关组件 ([1abcb74](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1abcb740fd73f420688cdfc429049a3df771db59))
* message替换 ([4523980](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/45239800fe153e7da8ed1f74c3e515150e6309da))
* modal组件替换 ([714db34](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/714db34c48dd38a86dc77568f881e022edb1cffb))
* **personal-info:** 优化个人信息页面功能 ([4099865](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4099865bc89bdb9a59fb9ab9386264ae6356c991))
* **property-marketing:** 更新媒体账号作品详情页面- 添加危险色和成功色到 redTheme 配置 ([12d5621](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/12d56215bc290cbd52eabbc28254b7ad09947065))
* **property-marketing:** 实现媒体账号作品详情页面数据展示 ([79ce7fe](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/79ce7fe02e71257ead906b818f41aad31229989c))
* **property-marketing:** 新增投放指南详情页功能 ([bd4931d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bd4931dbc6854419383a0739a2a4f910864e68bc))
* **property-marketing:** 新增月数据复制功能,优化组件样式布局 ([483cf28](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/483cf28d825b5ce16aaa31031150c1ad1ed97ce6))
* **property-marketing:** 新增月数据复制功能,优化组件样式布局 ([ffed6d2](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ffed6d20db86237ecaf03bf6a78a1f10fde94fe7))
* **property-marketing:** 新增月数据复制功能,优化组件样式布局 ([4264a61](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/4264a61c78187ca11e902b77ddc35fc36bdfa073))
* **property-marketing:** 新增账号选择组件并优化图表展示逻辑 ([82c73e1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/82c73e127eeb40bf4050cdf2bc265b34d8e453f9))
* **property-marketing:** 新增PDF导出功能并优化投放指南页面交互 ([6221c0a](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6221c0a2f8cea6d70245587e59523c9e2b2f3eed))
* **property-marketing:** 优化报表页面布局和功能 ([6bb9774](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6bb977401bc6964cad47d1063911fbf319591991))
* **property-marketing:** 优化报表页面布局和功能 ([6c35c1e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/6c35c1ec9c875c8c5b9c4f66db4fb53b588748ea))
* **property-marketing:** 优化报表页面布局和功能 ([1481054](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/14810549abd9be1b426c39ecbfbd1c1f49b75196))
* **property-marketing:** 优化空数据展示处理,调整图表组件和投资指南组件交互逻辑 ([c1398a7](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/c1398a7fdd2ffe44078e6bc682993b02b4762b35))
* **property-marketing:** 优化空数据展示处理,调整图表组件和投资指南组件交互逻辑 ([bed69d8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bed69d84b0c574bed868830feaf50e6a95af9420))
* **property-marketing:** 优化投放指南删除功能并添加页面下载功能 ([b459be4](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/b459be4894e0c4e0892998f69ba8e9ef22bb7e3f))
* **property-marketing:** 优化投放指南下载功能并重构PDF生成逻辑 ([8558448](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/85584484df9d90c873906d19ec7bbd74111b49ca))
* **property-marketing:** 优化投放指南详情页样式和平台图标展示 perf: 移除冗余代码和定时任务日志 style: 统一使用Alibaba PuHuiTi字体调整间距和样式结构 ([a7c3b47](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a7c3b47836039dc9df23c3bddd718ca9e8718b92))
* **property-marketing:** 优化账号和计划选择组件,重构投放指南表格展示逻辑 ([1264f8a](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/1264f8a85011d25a6983b1efc726991bb015399a))
* **property-marketing:** 优化账号和计划选择组件,重构投放指南表格展示逻辑 ([f9af573](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/f9af57395dfe6811c6a8f1893605eda2ffe09c2f))
* **property-marketing:** 增加媒体账号同步状态展示与操作功能- 在账号管理表格中新增“更新状态”列,用于展示同步状态 ([304cef3](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/304cef38a003a021debd177d9cee7d44efe5e524))
* **property-marketing:** 重构仪表盘图表组件,新增计划选择组件并优化数据展示逻辑 ([49ecfc9](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/49ecfc9682f720834927bf7d58e92f9da9a9aca0))
* **property-marketing:** 重构月度数据展示组件并优化AI分析交互流程 ([dbbd14e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/dbbd14e89fdd5682e77ab17e1c00e5bb5c106723))
* **property-marketing:** 重构AI分析结果处理逻辑并优化页面交互 ([d045ca0](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d045ca0cd0d2dfa5e2d0813f6b9032db7695f53f))
* **property-marketing:** 重构AI分析结果处理逻辑并优化页面交互 ([26e703d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/26e703d744644293a298feb6c67c1a52f4fc4f6b))
* **router:** 优化 Agent路由加载策略 ([56f3f06](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/56f3f06998e1ae30a4d0c50ed490cc515eb7ca37))
* select组件替换 ([277e0ed](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/277e0ed74a138d8d613ae781eac0552fd2029f68))
* sider调整 ([ca53c8f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ca53c8f77bc9a60b6f45ee17cbd7b3b1e813d792))
* space组件处理 ([7a27bd1](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/7a27bd18943023f72adaaa89111fe085ef642ef7))
* sse连接处理流式渲染 ([dae8eed](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/dae8eed54aa243b6aa1a93251510bcc54e24e3b3))
* **store:** 新增用户和企业信息管理功能 ([d7df285](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/d7df285d73a6f0f8448db859cd4b68ebfd668c6d))
* table组件替换 ([2bb7f3e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/2bb7f3e21c247ae29f4b40e50aebd7ef52f2efd7))
* tagNotification替换 ([3a6d764](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/3a6d764ec0c31db49b93e1a1e2718f47ed640d3c))
* TeamRunCompleted状态处理 ([e14865c](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/e14865c1e0c7d406e4100daead4d36449ec830ba))
* textarea高亮词语组件调整 ([35daf42](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/35daf42d10a0c21eff7b890a58b318f6ed944f52))
* **views:** 添加个人信息管理功能 ([ff589f8](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ff589f8d22d25a8bb875ccd65d2b639a455dbe4b))
### Bug Fixes
* 测试环境打包后多处一个zindex问题处理 ([ec0e11f](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/ec0e11fb6542361d32b650eeed5d35f99dc7588c))
* 函数名重复导致报错 ([108d72d](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/108d72df553262c141090fe653c12414ad892a7c))
* 接口读值 ([bc0ec29](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/bc0ec2987d0d0bb812d3c792f70d2ddee671e4f0))
* 修复权限校验逻辑,移除冗余返回语句 ([c98dc1e](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/c98dc1eba7cf872061c4a3eabdd0bf0317ba8d69))
* **input:** 优化输入框交互和验证逻辑 ([95468af](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/95468afbf0ec3d715f13ac02ce582d2b7186ee39))
* **media-account:** 移除曝光数的错误计算逻辑 ([a7e1804](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/a7e18048565e050ddb61677a19f3e01593574334))
* **person:** 优化验证码输入错误处理逻辑设置焦点到第一个输入框 ([29b978b](https://gta.lvfunai.com:42001/ai-team/lingji-work-fe/commit/29b978b719e76c956a9f296363d632a75d0453e4))

View File

@ -3,8 +3,6 @@
* */ * */
import AutoImport from 'unplugin-auto-import/vite'; import AutoImport from 'unplugin-auto-import/vite';
import { ArcoResolver } from 'unplugin-vue-components/resolvers';
import { layoutsResolver } from '../utils'; import { layoutsResolver } from '../utils';
export function configAutoImport() { export function configAutoImport() {
@ -38,11 +36,6 @@ export function configAutoImport() {
}, },
], ],
resolvers: [ resolvers: [
ArcoResolver({
resolveIcons: {
enable: true,
},
}),
layoutsResolver(), layoutsResolver(),
], ],
eslintrc: { eslintrc: {

View File

@ -4,7 +4,7 @@
import { kebabCase } from 'unplugin-vue-components'; import { kebabCase } from 'unplugin-vue-components';
import Components from 'unplugin-vue-components/vite'; import Components from 'unplugin-vue-components/vite';
import { ArcoResolver } from 'unplugin-vue-components/resolvers'; import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
import { getSep, getPath, setResolve, layoutsResolver } from '../utils'; import { getSep, getPath, setResolve, layoutsResolver } from '../utils';
@ -13,11 +13,8 @@ export function configComponents() {
dirs: ['src/components'], dirs: ['src/components'],
extensions: ['vue'], extensions: ['vue'],
resolvers: [ resolvers: [
ArcoResolver({ AntDesignVueResolver({
resolveIcons: { importStyle: false,
enable: true,
},
sideEffect: true,
}), }),
layoutsResolver(), layoutsResolver(),
{ {

View File

@ -1,6 +1,6 @@
{ {
"name": "template-admin-ts", "name": "template-admin-ts",
"version": "0.0.1", "version": "0.0.2",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
@ -8,11 +8,11 @@
"build:prod": "vite build --mode production && tar -czvf dist.tar.gz dist", "build:prod": "vite build --mode production && tar -czvf dist.tar.gz dist",
"build-only": "vite build -- mode development", "build-only": "vite build -- mode development",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"prepare": "husky install" "prepare": "husky install",
"release": "standard-version && git push --follow-tags"
}, },
"dependencies": { "dependencies": {
"@ant-design/icons-vue": "^7.0.1", "@ant-design/icons-vue": "^7.0.1",
"@arco-design/web-vue": "^2.42.0",
"@microsoft/fetch-event-source": "^2.0.1", "@microsoft/fetch-event-source": "^2.0.1",
"@types/nprogress": "^0.2.0", "@types/nprogress": "^0.2.0",
"@vueuse/core": "^9.12.0", "@vueuse/core": "^9.12.0",
@ -70,6 +70,7 @@
"nprogress": "0.2.0", "nprogress": "0.2.0",
"prettier": "^2.8.3", "prettier": "^2.8.3",
"rollup-plugin-visualizer": "^5.9.0", "rollup-plugin-visualizer": "^5.9.0",
"standard-version": "^9.5.0",
"typescript": "~4.9.5", "typescript": "~4.9.5",
"unocss": "^0.49.2", "unocss": "^0.49.2",
"unplugin-auto-import": "^0.13.0", "unplugin-auto-import": "^0.13.0",

901
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,6 @@ import SvgIcon from '@/components/svg-icon/index.vue';
import '@/api/index'; import '@/api/index';
import './core'; import './core';
import '@arco-design/web-vue/dist/arco.css'; // 已移除 Arco 样式
import 'normalize.css'; import 'normalize.css';
import 'uno.css'; import 'uno.css';

View File

@ -32,6 +32,10 @@
border-color: #e6e6e8 !important; border-color: #e6e6e8 !important;
color: #737478 !important; color: #737478 !important;
} }
&:active {
border-color: #D7D7D9 !important;
color: #211F24 !important;
}
} }
&.ant-btn-dangerous { &.ant-btn-dangerous {
border-color: $color-error !important; border-color: $color-error !important;

View File

@ -0,0 +1,28 @@
.ant-dropdown {
.ant-dropdown-menu {
padding: 4px 0;
border-radius: 4px;
border: 1px solid var(--Border-1, #d7d7d9);
background: var(--BG-White, #fff);
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);
}
.ant-dropdown-menu-item {
height: 36px;
padding: 0 12px !important;
.ant-dropdown-menu-title-content {
color: var(--Text-1, #211f24);
font-family: $font-family-regular;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 22px;
}
&.active {
.ant-dropdown-menu-title-content {
color: $color-primary;
}
}
}
}

View File

@ -17,3 +17,4 @@
@import "./ant-spin.scss"; @import "./ant-spin.scss";
@import "./ant-drawer.scss"; @import "./ant-drawer.scss";
@import "./ant-pagination.scss"; @import "./ant-pagination.scss";
@import "./ant-dropdown.scss";

View File

@ -30,34 +30,43 @@
<!-- 日期导航按钮 --> <!-- 日期导航按钮 -->
<div class="flex items-center ml-12px"> <div class="flex items-center ml-12px">
<a-button class="mr-4px prv-btn" @click="navigate(-1)" type="text"> <a-button class="mr-4px prv-btn" @click="navigate(-1)" type="text" size="small">
<template #icon><icon-left /></template> <template #icon>
<SvgIcon name="xt-left" size="20" class="color-#737478" />
</template>
</a-button> </a-button>
<a-button <a-button
@click="navigateToToday" @click="navigateToToday"
type="text" type="text"
style="background-color: #f7f8fa !important; color: #211f24 !important; height: 28px" style="color: #211f24 !important"
size="small"
class="!bg-#f7f8fa !hover:bg-#E6E6E8"
>今天</a-button >今天</a-button
> >
<a-button class="ml-4px prv-btn" @click="navigate(1)" type="text"> <a-button class="ml-4px prv-btn" @click="navigate(1)" type="text" size="small">
<template #icon><icon-right /></template> <template #icon>
<SvgIcon name="xt-right" size="20" class="color-#737478" />
</template>
</a-button> </a-button>
</div> </div>
<!-- 维度切换下拉框 --> <!-- 维度切换下拉框 -->
<div class="flex items-center"> <div class="flex items-center ml-12px">
<a-dropdown <a-dropdown
position="bottom" position="bottom"
@select="handleTypeChange" @select="handleTypeChange"
class="w-80px" class="w-80px"
:popupVisible="dropdownVisible" :open="dropdownVisible"
@popupVisibleChange="handleDropdownVisibleChange" @openChange="handleDropdownVisibleChange"
> >
<a-button type="text" class="prv-today"> {{ choseType }}<icon-down class="ml-4px" /> </a-button> <a-button type="text" class="prv-today !bg-#f7f8fa !hover:bg-#E6E6E8 !px-12px">
<template #content> <span>{{ choseType }} </span>
<a-doption value="" class="doption"></a-doption> <SvgIcon name="xt-down" size="14" class="color-#737478" />
<a-doption value="周" class="doption"></a-doption> </a-button>
<a-doption value="月" class="doption"></a-doption> <template #overlay>
<a-menu @click="handleTypeChange">
<a-menu-item v-for="item in DAYS" :key="item" :class="choseType === item ? 'active' : ''"> {{ item }} </a-menu-item>
</a-menu>
</template> </template>
</a-dropdown> </a-dropdown>
</div> </div>
@ -67,6 +76,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, watch, defineProps, defineEmits, withDefaults, computed } from 'vue'; import { ref, watch, defineProps, defineEmits, withDefaults, computed } from 'vue';
import DateUtils from '@/utils/DateUtils'; import DateUtils from '@/utils/DateUtils';
import { DownOutlined } from '@ant-design/icons-vue';
// 1. 定义Props接收父组件初始日期配置 // 1. 定义Props接收父组件初始日期配置
interface Props { interface Props {
@ -78,6 +88,8 @@ interface Props {
}; };
} }
const DAYS = ['日','周','月'];
const props = withDefaults(defineProps<Props>(), { const props = withDefaults(defineProps<Props>(), {
modelValue: () => ({ choseType: '周', dayModel: new Date(), weekModel: new Date(), monthModel: new Date() }), modelValue: () => ({ choseType: '周', dayModel: new Date(), weekModel: new Date(), monthModel: new Date() }),
}); });
@ -144,8 +156,10 @@ const getDateRange = (): { start: string; end: string } => {
}; };
// 5. 维度切换处理(日/周/月) // 5. 维度切换处理(日/周/月)
const handleTypeChange = (val: '日' | '周' | '月') => { const handleTypeChange = (val) => {
choseType.value = val; const { key } = val;
choseType.value = key;
// 切换维度时默认选中当天对应的维度日期 // 切换维度时默认选中当天对应的维度日期
const today = new Date(); const today = new Date();
currentDate.value = today; currentDate.value = today;
@ -252,17 +266,16 @@ setTimeout(() => {
}, 0); }, 0);
</script> </script>
<style scoped> <style scoped lang="scss">
.arco-dropdown-open .arco-icon-down {
transform: rotate(180deg);
transition: transform 0.2s ease;
}
.prv-btn { .prv-btn {
background-color: #f7f8fa !important; /* 使用正确的6位十六进制颜色值 */ background-color: #f7f8fa !important; /* 使用正确的6位十六进制颜色值 */
width: 28px; width: 28px;
height: 28px; height: 28px;
border-radius: 4px; border-radius: 4px;
color: #211f24 !important; color: #211f24 !important;
&:hover {
background-color: var(--BG-300, #e6e6e8) !important;
}
} }
.doption { .doption {
width: 78px !important; width: 78px !important;
@ -270,10 +283,23 @@ setTimeout(() => {
.prv-today { .prv-today {
color: #211f24 !important; color: #211f24 !important;
width: 80px !important; width: 80px !important;
background-color: #f7f8fa !important; // background-color: #f7f8fa !important;
height: 28px; height: 28px;
margin-left: 4px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-color: $color-primary !important;
&:hover {
border-color: $color-primary !important;
color: #211f24 !important;
}
}
.ant-dropdown-trigger {
&.ant-dropdown-open {
.svg-icon {
transform: rotate(180deg);
transition: transform 0.2s ease;
}
}
} }
</style> </style>

View File

@ -73,18 +73,39 @@
<div <div
v-for="item in selectedMaterials.texts" v-for="item in selectedMaterials.texts"
:key="item.id" :key="item.id"
class="flex items-center bg-#F7F8FA border-rounded-8px w-full justify-items-center pt-8px pb-8px pl-12px pr-12px mb-16px" class="relative flex items-center bg-#F7F8FA border-rounded-8px w-full justify-items-center pt-8px pb-8px pl-12px pr-12px mb-16px"
@mouseenter="item.showDelete = true"
@mouseleave="item.showDelete = false"
> >
{{ item }} {{ item.name || item.title || item }}
</div> <SvgIcon
<div class="flex items-center w-full"> name="xt-close"
<img size="14"
v-for="item in selectedMaterials.images" @click="handleDeleteText(item)"
:key="item.id" v-show="item.showDelete"
:src="item.cover" class="absolute top-8px right-8px w-20px h-20px cursor-pointer bg-#737478 rounded-4px p-2px color-#FFFFFF"
class="w-88 h-88 mr-8px border-rounded-8px"
/> />
</div> </div>
<div class="w-full">
<div class="grid grid-cols-4 gap-8px w-full">
<div
v-for="(item, index) in selectedMaterials.images"
:key="item.id"
class="relative w-88px h-88px"
@mouseenter="item.showDelete = true"
@mouseleave="item.showDelete = false"
>
<img :src="item.cover" class="w-full h-full rounded-8px" />
<SvgIcon
name="xt-close"
size="14"
@click="handleDeleteImage(item.id)"
v-show="item.showDelete"
class="absolute top--8px right--8px w-16px h-16px cursor-pointer bg-#737478 rounded-50% p-2px color-#FFFFFF"
/>
</div>
</div>
</div>
</div> </div>
<div v-else class="flex flex-col items-center"> <div v-else class="flex flex-col items-center">
<p class="material-hint">AI会参考添加的文本图片视频等素材完成符合需求的创作</p> <p class="material-hint">AI会参考添加的文本图片视频等素材完成符合需求的创作</p>
@ -118,7 +139,7 @@
/> />
</div> </div>
<div class="mb-12px" v-if="selectedProducts.data.length > 0">{{ selectedProducts.data[0].title }}</div> <div class="mb-12px" v-if="selectedProducts.data.length > 0">{{ selectedProducts.data[0].title }}</div>
<div class="mb-12px color-#939499" v-if="selectedProducts.data.length > 0"> <div class="mb-12px color-#939499 line-clamp-2" v-if="selectedProducts.data.length > 0">
{{ selectedProducts.data[0].content }} {{ selectedProducts.data[0].content }}
</div> </div>
<div v-for="item in selectedProducts.images" :key="item.id"> <div v-for="item in selectedProducts.images" :key="item.id">
@ -200,7 +221,7 @@
import { getWorksPage } from '@/api/all/generationWorkshop.ts'; import { getWorksPage } from '@/api/all/generationWorkshop.ts';
import { ref, reactive, watch, nextTick } from 'vue'; import { ref, reactive, watch, nextTick } from 'vue';
import aiIcon from '@/assets/img/media-account/icon-AI.png'; import aiIcon from '@/assets/img/media-account/icon-AI.png';
import { SwapOutlined, DeleteOutlined } from '@ant-design/icons-vue'; import { SwapOutlined, DeleteOutlined, CloseOutlined } from '@ant-design/icons-vue';
import { Button, DatePicker, TimePicker } from 'ant-design-vue'; import { Button, DatePicker, TimePicker } from 'ant-design-vue';
import { TABS_LIST, ORIGIN_LIST, RawMaterialType } from '@/views/material-center/components/raw-material/constants'; import { TABS_LIST, ORIGIN_LIST, RawMaterialType } from '@/views/material-center/components/raw-material/constants';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
@ -369,6 +390,30 @@ const handleDelte = () => {
images: [], images: [],
}; };
}; };
// 删除文本项
const handleDeleteText = (id) => {
selectedMaterials.value.texts = selectedMaterials.value.texts.filter((item) => item !== id);
selectedMaterials.value.keys = selectedMaterials.value.keys.filter((key) => key !== id);
// 更新hasChoseMaterial状态
updateHasChoseMaterial();
};
// 删除图片项
const handleDeleteImage = (id) => {
selectedMaterials.value.images = selectedMaterials.value.images.filter((item) => item.id !== id);
selectedMaterials.value.keys = selectedMaterials.value.keys.filter((key) => key !== id);
// 更新hasChoseMaterial状态
updateHasChoseMaterial();
};
// 更新hasChoseMaterial状态
const updateHasChoseMaterial = () => {
hasChoseMaterial.value = selectedMaterials.value.texts.length > 0 || selectedMaterials.value.images.length > 0;
};
// 处理原料库选择确认 // 处理原料库选择确认
const handleMaterialConfirm = (result) => { const handleMaterialConfirm = (result) => {
console.log('handleMaterialConfirm', result); console.log('handleMaterialConfirm', result);
@ -379,6 +424,28 @@ const handleMaterialConfirm = (result) => {
images: result.choseImgArray, images: result.choseImgArray,
texts: result.selectedTexts || [], texts: result.selectedTexts || [],
}; };
// 为每个文本项添加showDelete属性如果它们是对象
if (selectedMaterials.value.texts.length > 0 && typeof selectedMaterials.value.texts[0] === 'object') {
selectedMaterials.value.texts = selectedMaterials.value.texts.map((text) => ({
...text,
showDelete: false,
}));
} else {
// 如果是字符串,则包装成对象
selectedMaterials.value.texts = selectedMaterials.value.texts.map((text, index) => ({
id: `text_${index}`,
name: text,
showDelete: false,
}));
}
// 为每个图片项添加showDelete属性
selectedMaterials.value.images = selectedMaterials.value.images.map((image) => ({
...image,
showDelete: false,
}));
hasChoseMaterial.value = result.selectedKeys.length > 0; hasChoseMaterial.value = result.selectedKeys.length > 0;
}; };
@ -411,7 +478,7 @@ const handleProductConfirm = async (result) => {
keys: [workDetail.id], keys: [workDetail.id],
data: [workDetail], data: [workDetail],
text: workDetail.title || '1个稿件', text: workDetail.title || '1个稿件',
images: workDetail.files ? workDetail.files.filter(f => f.type === 0) : [], // 图片文件 images: workDetail.files ? workDetail.files.filter((f) => f.type === 0) : [], // 图片文件
}; };
} }
} catch (error) { } catch (error) {
@ -493,7 +560,7 @@ const showDrawer = (accountInfo = null, selectedDate = null) => {
if (accountInfo && accountInfo.id) { if (accountInfo && accountInfo.id) {
nextTick(() => { nextTick(() => {
// 查找账号列表中匹配的账号,包含平台信息和图标 // 查找账号列表中匹配的账号,包含平台信息和图标
const matchedAccount = accountList.value.find(account => account.value === accountInfo.id); const matchedAccount = accountList.value.find((account) => account.value === accountInfo.id);
if (matchedAccount) { if (matchedAccount) {
localQuery.value.accounts = [matchedAccount.name]; localQuery.value.accounts = [matchedAccount.name];
localQuery.value.ids = [accountInfo.id]; localQuery.value.ids = [accountInfo.id];
@ -505,20 +572,24 @@ const showDrawer = (accountInfo = null, selectedDate = null) => {
localQuery.value.ids = [accountInfo.id]; localQuery.value.ids = [accountInfo.id];
} else { } else {
// 账号列表尚未加载,等待加载完成后再设置 // 账号列表尚未加载,等待加载完成后再设置
const unwatch = watch(accountList, (newAccountList) => { const unwatch = watch(
if (newAccountList.length > 0) { accountList,
const matched = newAccountList.find(account => account.value === accountInfo.id); (newAccountList) => {
if (matched) { if (newAccountList.length > 0) {
localQuery.value.accounts = [matched.name]; const matched = newAccountList.find((account) => account.value === accountInfo.id);
localQuery.value.ids = [accountInfo.id]; if (matched) {
} else { localQuery.value.accounts = [matched.name];
localQuery.value.accounts = [`${accountInfo.name}(${getPlatformName(accountInfo.platform)})`]; localQuery.value.ids = [accountInfo.id];
localQuery.value.ids = [accountInfo.id]; } else {
localQuery.value.accounts = [`${accountInfo.name}(${getPlatformName(accountInfo.platform)})`];
localQuery.value.ids = [accountInfo.id];
}
// 取消监听
unwatch();
} }
// 取消监听 },
unwatch(); { immediate: true },
} );
}, { immediate: true });
} }
} }
}); });
@ -580,11 +651,11 @@ const fillTaskData = async (taskData) => {
if (fullTaskData.is_ai_generate && fullTaskData.raw_materials && fullTaskData.raw_materials.length > 0) { if (fullTaskData.is_ai_generate && fullTaskData.raw_materials && fullTaskData.raw_materials.length > 0) {
const materials = fullTaskData.raw_materials; const materials = fullTaskData.raw_materials;
selectedMaterials.value = { selectedMaterials.value = {
keys: materials.map(m => m.id), keys: materials.map((m) => m.id),
data: materials, data: materials,
text: '', text: '',
images: materials.filter(m => m.type === 0), // 图片 images: materials.filter((m) => m.type === 0), // 图片
texts: materials.filter(m => m.type === 2), // 文本 texts: materials.filter((m) => m.type === 2), // 文本
}; };
hasChoseMaterial.value = materials.length > 0; hasChoseMaterial.value = materials.length > 0;
} }
@ -596,7 +667,7 @@ const fillTaskData = async (taskData) => {
keys: [work.id], keys: [work.id],
data: [work], data: [work],
text: work.title || '1个稿件', text: work.title || '1个稿件',
images: work.files ? work.files.filter(f => f.type === 0) : [], // 图片文件 images: work.files ? work.files.filter((f) => f.type === 0) : [], // 图片文件
}; };
hasChoseFinishedProducts.value = true; hasChoseFinishedProducts.value = true;
} }

View File

@ -124,7 +124,7 @@ import iconWb from '@/assets/img/platform/icon-wb.png';
import iconGzh from '@/assets/img/platform/icon-gzh.png'; import iconGzh from '@/assets/img/platform/icon-gzh.png';
import iconWarn from '@/assets/img/media-account/icon-warn.png'; import iconWarn from '@/assets/img/media-account/icon-warn.png';
import { getTaskSchedulesDetail } from '@/api/all/assignment-management'; import { getTaskSchedulesDetail } from '@/api/all/assignment-management';
import { DatePicker } from '@arco-design/web-vue';
// 定义props和emit // 定义props和emit
const props = defineProps({ const props = defineProps({
task: Object, task: Object,

View File

@ -1,10 +1,10 @@
<template> <template>
<div class="flex-column justify-between bg-#fff rounded-8px p-24px"> <div class="flex flex-col justify-between bg-white rounded-8px p-24px">
<!-- 日期选择器和筛选区域 --> <!-- 日期选择器和筛选区域 -->
<div class="flex justify-between items-start w-full"> <div class="flex justify-between items-start w-full mb-24px">
<DateSelector v-model="dateSelectorModel" @date-change="handleDateSelectorChange" /> <DateSelector v-model="dateSelectorModel" @date-change="handleDateSelectorChange" />
<div class="flex items-start"> <div class="flex items-start gap-12px">
<colorTip /> <ColorTip />
<FilterPopup <FilterPopup
:operators="operators" :operators="operators"
:platformOptions="platformOptions" :platformOptions="platformOptions"
@ -12,82 +12,76 @@
:query="query" :query="query"
@filter-change="handleFilterChange" @filter-change="handleFilterChange"
/> />
<Button type="primary" class="w-112px" size="middle" @click="handleAddTask"> <a-button type="primary" class="w-112px" size="middle" @click="handleAddTask"> 创建任务 </a-button>
<template #default>创建任务</template>
</Button>
</div> </div>
</div> </div>
<!-- 表格内容区域 --> <!-- 表格内容区域 -->
<div class="flex justify-between items-start w-full"> <div class="flex-1 w-full">
<div class="table-wrap py-24px flex flex-col" style="width: 100%; overflow-x: auto"> <div class="flex flex-col" style="width: 100%; overflow-x: auto">
<a-table <a-table
:columns="columns" :columns="columns"
:data="data" :data-source="data"
:bordered="{ cell: true }" :bordered="true"
:scroll="{ x: 'max-content' }" :scroll="{ x: 'max-content' }"
style="width: 100%"
:pagination="false" :pagination="false"
:locale="{ emptyText: emptyText }"
@change="handleTableChange" @change="handleTableChange"
@cell-click="handleCellClick"
> >
<!-- 空数据显示 -->
<template #empty>
<div class="flex flex-col items-center justify-center" style="min-height: 400px">
<img :src="emptyIcon" class="img mt-20px" alt="暂无数据" width="106" height="72" />
<div class="text mt-36px">暂无数据</div>
<div class="mt-12px mb-12px">可通过账号管理添加账号进行任务排期管理</div>
<a-button type="primary" @click="handleAddAccount">去添加</a-button>
</div>
</template>
<!-- 账号与平台列 --> <!-- 账号与平台列 -->
<template #name="{ record }"> <template #bodyCell="{ column, record, index }">
<div class="flex items-center justify-start"> <!-- 账号名称列 -->
<img <template v-if="column.dataIndex === 'name'">
:src="getPlatformIcon(record.platform)" <div class="flex items-center justify-start color-#211F24">
style="border-radius: 8px; width: 16px; height: 16px; margin-right: 8px; margin-left: 20px" <img
:alt="getPlatformName(record.platform)" :src="getPlatformIcon(record.platform)"
/> class="w-16px h-16px mr-8px rounded-4px"
{{ record.name || '-' }} :alt="getPlatformName(record.platform)"
</div>
</template>
<!-- 动态日期单元格 -->
<template #dateCell="{ record, column }">
<div v-if="record[column.dataIndex]?.length" class="task-container">
<!-- 任务数量3时显示更多 -->
<div v-if="record[column.dataIndex].length >= 3" class="task-more">
<TaskItem :task="record[column.dataIndex][0]" :record="record" @handle-task="handleTaskAction" />
<a-trigger trigger="click" position="br">
<div class="size-12px color-#8f959f h-19px ml-4px rounded-2px cursor-pointer" @click.stop>
还有{{ record[column.dataIndex].length - 1 }}
</div>
<template #content>
<div class="bg-#fff w-160px p-12px rounded-4px flex flex-col more-content">
<TaskItem
v-for="task in record[column.dataIndex]"
:key="task.id"
:task="task"
:record="record"
@handle-task="handleTaskAction"
/>
</div>
</template>
</a-trigger>
</div>
<!-- 任务数量<3时直接显示 -->
<div v-else>
<TaskItem
v-for="task in record[column.dataIndex]"
:key="task.id"
:task="task"
:record="record"
@handle-task="handleTaskAction"
/> />
{{ record.name || '-' }}
</div> </div>
</div> </template>
<div v-else class="no-task"></div>
<!-- 动态日期单元格 -->
<template v-else-if="column.dataIndex === 'dateCell'">
<div
v-if="record[column.dataIndex]?.length"
class="task-container"
@click="handleCellClick(record, column)"
>
<!-- 任务数量3时显示更多 -->
<div v-if="record[column.dataIndex].length >= 3" class="task-more">
<TaskItem :task="record[column.dataIndex][0]" :record="record" @handle-task="handleTaskAction" />
<a-popover trigger="click" placement="bottomRight">
<template #content>
<div class="bg-white w-160px p-12px rounded-4px flex flex-col more-content">
<TaskItem
v-for="task in record[column.dataIndex].slice(1)"
:key="task.id"
:task="task"
:record="record"
@handle-task="handleTaskAction"
/>
</div>
</template>
<div class="size-12px color-#8f959f h-19px ml-4px rounded-2px cursor-pointer" @click.stop>
还有{{ record[column.dataIndex].length - 1 }}
</div>
</a-popover>
</div>
<!-- 任务数量<3时直接显示 -->
<div v-else>
<TaskItem
v-for="task in record[column.dataIndex]"
:key="task.id"
:task="task"
:record="record"
@handle-task="handleTaskAction"
/>
</div>
</div>
<div v-else class="no-task" @click="handleCellClick(record, column)"></div>
</template>
</template> </template>
</a-table> </a-table>
@ -95,38 +89,48 @@
<div v-if="pageInfo.total > 0" class="pagination-box"> <div v-if="pageInfo.total > 0" class="pagination-box">
<a-pagination <a-pagination
:total="pageInfo.total" :total="pageInfo.total"
size="mini" size="small"
show-total show-total
show-jumper show-jumper
show-page-size show-size-changer
:current="pageInfo.page" :current="pageInfo.page"
:page-size="pageInfo.page_size" :page-size="pageInfo.page_size"
@change="onPageChange" @change="handlePageChange"
@page-size-change="onPageSizeChange" @showSizeChange="handlePageSizeChange"
/> />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 删除确认弹窗 --> <!-- 删除确认弹窗 -->
<a-modal v-model:visible="showModal" @ok="handleDeleteConfirm" @cancel="showModal = false" ok-text="确认删除"> <a-modal
<template #title>{{ deleteTitle }}</template> v-model:open="showModal"
@ok="handleDeleteConfirm"
@cancel="showModal = false"
ok-text="确认删除"
:title="deleteTitle"
>
<div>{{ deleteContent }}</div> <div>{{ deleteContent }}</div>
</a-modal> </a-modal>
<DrowPopup ref="drawerPopupRef" @create-task="handleCreateTask" />
<DrawPopup ref="drawerPopupRef" @create-task="handleCreateTask" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, onMounted, computed, inject } from 'vue'; import { ref, reactive, onMounted, computed, nextTick, h } from 'vue';
import type { ColumnProps } from 'ant-design-vue/es/table'; import { Table, Button, Popover, Pagination, Modal, notification, message } from 'ant-design-vue';
import type { TableProps } from 'ant-design-vue';
import router from '@/router'; import router from '@/router';
import DateUtils from '@/utils/DateUtils'; import DateUtils from '@/utils/DateUtils';
// 组件引入 // 组件引入
import DateSelector from './components/date-selector.vue'; import DateSelector from './components/date-selector.vue';
import colorTip from './components/colorTip.vue'; import ColorTip from './components/colorTip.vue';
import FilterPopup from './components/filter-popup.vue'; import FilterPopup from './components/filter-popup.vue';
import DrowPopup from './components/draw-popup.vue'; import DrawPopup from './components/draw-popup.vue';
import TaskItem from './components/task-item.vue'; import TaskItem from './components/task-item.vue';
// API引入 // API引入
import { import {
getTaskSchedules, getTaskSchedules,
@ -136,8 +140,10 @@ import {
generateContent, generateContent,
} from '@/api/all/assignment-management'; } from '@/api/all/assignment-management';
import { fetchAccountOperators, getMediaAccountList } from '@/api/all/propertyMarketing'; import { fetchAccountOperators, getMediaAccountList } from '@/api/all/propertyMarketing';
// 工具引入 // 工具引入
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination'; import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
// 静态资源 // 静态资源
import emptyIcon from '@/assets/img/media-account/icon-empty.png'; import emptyIcon from '@/assets/img/media-account/icon-empty.png';
// 平台图标 // 平台图标
@ -149,8 +155,7 @@ import iconSph from '@/assets/img/platform/icon-sph.png';
import iconWb from '@/assets/img/platform/icon-wb.png'; import iconWb from '@/assets/img/platform/icon-wb.png';
import iconGzh from '@/assets/img/platform/icon-gzh.png'; import iconGzh from '@/assets/img/platform/icon-gzh.png';
import iconWarn from '@/assets/img/media-account/icon-warn.png'; import iconWarn from '@/assets/img/media-account/icon-warn.png';
import { Checkbox, Button, Space, Pagination, notification } from 'ant-design-vue';
import { message } from 'ant-design-vue';
// 表格分页逻辑 // 表格分页逻辑
const { pageInfo, onPageChange, onPageSizeChange } = useTableSelectionWithPagination({ const { pageInfo, onPageChange, onPageSizeChange } = useTableSelectionWithPagination({
onPageChange: () => handleSearch(), onPageChange: () => handleSearch(),
@ -164,7 +169,8 @@ const dateSelectorModel = ref({
weekModel: new Date(), weekModel: new Date(),
monthModel: new Date(), monthModel: new Date(),
}); });
const columns = ref<ColumnProps[]>([]);
const columns = ref<TableProps['columns']>([]);
const data = ref<any[]>([]); const data = ref<any[]>([]);
const operators = ref([]); const operators = ref([]);
const accountList = ref([]); const accountList = ref([]);
@ -172,6 +178,17 @@ const showModal = ref(false);
const currentTask = ref<any>(null); const currentTask = ref<any>(null);
const deleteTitle = ref(''); const deleteTitle = ref('');
const deleteContent = ref(''); const deleteContent = ref('');
const drawerPopupRef = ref();
// 空状态显示
const emptyText = () => {
return h('div', { class: 'flex flex-col items-center justify-center', style: { minHeight: '600px' } }, [
h('img', { src: emptyIcon, class: 'img mt-20px', alt: '暂无数据', width: 106, height: 72 }),
h('div', { class: 'text mt-36px' }, '暂无数据'),
h('div', { class: 'mt-12px mb-12px' }, '可通过账号管理添加账号,进行任务排期管理'),
h(Button, { type: 'primary', onClick: handleAddAccount }, '去添加'),
]);
};
// 获取当前周的日期范围 // 获取当前周的日期范围
const getCurrentWeekRange = () => { const getCurrentWeekRange = () => {
@ -186,7 +203,7 @@ const query = reactive({
platforms: undefined, platforms: undefined,
operator_ids: undefined, operator_ids: undefined,
ids: [], ids: [],
execution_time: getCurrentWeekRange(), // 设置默认值为当前周 execution_time: getCurrentWeekRange(),
top_execution_time: undefined, top_execution_time: undefined,
}); });
@ -204,6 +221,7 @@ const platformConfig = {
{ id: 6, name: '公众号', icon: iconGzh }, { id: 6, name: '公众号', icon: iconGzh },
], ],
}; };
const platformOptions = ref(platformConfig.options); const platformOptions = ref(platformConfig.options);
// 工具函数 // 工具函数
@ -230,6 +248,7 @@ const processTableData = (apiData: any[]) => {
dateHeaders.forEach((day) => { dateHeaders.forEach((day) => {
rowData[day] = []; rowData[day] = [];
}); });
// 分配任务到对应日期列 // 分配任务到对应日期列
if (account.task_schedules?.length) { if (account.task_schedules?.length) {
account.task_schedules.forEach((task: any) => { account.task_schedules.forEach((task: any) => {
@ -246,34 +265,19 @@ const processTableData = (apiData: any[]) => {
return processedData; return processedData;
}; };
// 创建任务
const handleAddTask = () => {
drawerPopupRef.value?.showDrawer();
};
const handleCreateTask = async (value) => {
const res = await createTask(value);
if (res && res.code === 200) {
message.success('创建成功');
handleSearch();
}
};
// 添加对DrowPopup组件的引用
const drawerPopupRef = ref();
// 设置表格列 // 设置表格列
const setTableColumns = () => { const setTableColumns = () => {
columns.value = [ const baseColumns: TableProps['columns'] = [
{ {
title: '账号与发布平台', title: '账号与发布平台',
slotName: 'name', dataIndex: 'name',
key: 'name',
width: 150, width: 150,
ellipsis: true, ellipsis: true,
tooltip: true, fixed: 'left',
fixed: 'left', // 固定列
}, },
]; ];
let dateHeaders: any[] = []; let dateHeaders: any[] = [];
const { choseType } = dateSelectorModel.value; const { choseType } = dateSelectorModel.value;
@ -306,46 +310,95 @@ const setTableColumns = () => {
// 添加日期列 // 添加日期列
dateHeaders.forEach((item) => { dateHeaders.forEach((item) => {
const isWeekend = item.date?.getDay() === 0 || item.date?.getDay() === 6; const isWeekend = item.date?.getDay() === 0 || item.date?.getDay() === 6;
// 确保item.date存在再进行判断
const todayFlag = item.date ? isToday(item.date) : false; const todayFlag = item.date ? isToday(item.date) : false;
// 调试信息 const columnConfig: any = {
if (todayFlag) { title: item.weekday,
console.log('Today column detected:', item); dataIndex: item.day.toString(),
console.log('Today flag value:', todayFlag); key: item.day.toString(),
}
const columnConfig = {
title: `${item.weekday}`,
dataIndex: item.day,
slotName: 'dateCell',
date: item.date,
width: 135, width: 135,
sortable: { sorter: true,
sortDirections: ['ascend', 'descend'], customRender: ({ text, record, index }) => {
sorter: true, if (!text || !text.length) {
return h('div', { class: 'no-task' });
}
if (text.length >= 3) {
return h('div', { class: 'task-more' }, [
h(TaskItem, {
task: text[0],
record: record,
onHandleTask: handleTaskAction,
}),
h(
Popover,
{
trigger: 'click',
placement: 'bottomRight',
},
{
content: () =>
h(
'div',
{ class: 'more-content' },
text.slice(1).map((task) =>
h(TaskItem, {
task: task,
record: record,
onHandleTask: handleTaskAction,
}),
),
),
default: () =>
h(
'div',
{
class: 'task-more-indicator',
onClick: (e: Event) => e.stopPropagation(),
},
`还有${text.length - 1}`,
),
},
),
]);
}
return h(
'div',
{},
text.map((task) =>
h(TaskItem, {
task: task,
record: record,
onHandleTask: handleTaskAction,
}),
),
);
}, },
weekday: item.weekday, onCell: (record, index) => ({
todayFlag, style: {
// 为周末设置特定的背景色 backgroundColor: isWeekend ? '#fbfaff' : todayFlag ? '#6d4cfe' : 'transparent',
cellClass: isWeekend ? 'weekend-column' : '', },
// 为今日添加特殊类名 class: todayFlag ? 'today-column' : isWeekend ? 'weekend-column' : '',
class: todayFlag ? 'today-column' : '', }),
onHeaderCell: () => ({
style: {
backgroundColor: todayFlag ? '#6d4cfe' : 'transparent',
color: todayFlag ? 'white' : 'inherit',
},
class: todayFlag ? 'today-column' : '',
}),
}; };
// 更多调试信息 baseColumns.push(columnConfig);
if (todayFlag) {
console.log('Column config for today:', columnConfig);
}
columns.value.push(columnConfig);
}); });
columns.value = baseColumns;
}; };
// 当前日期头部计算 // 当前日期头部计算
const currentDateHeaders = computed(() => { const currentDateHeaders = computed(() => {
const { choseType } = dateSelectorModel.value; const { choseType } = dateSelectorModel.value;
if (choseType === '周') { if (choseType === '周') {
return DateUtils.getWeekDaysByDate(dateSelectorModel.value.weekModel, 0).map((item) => return DateUtils.getWeekDaysByDate(dateSelectorModel.value.weekModel, 0).map((item) =>
parseInt(item.day.toString(), 10), parseInt(item.day.toString(), 10),
@ -364,6 +417,7 @@ const currentDateHeaders = computed(() => {
const handleSearch = () => { const handleSearch = () => {
query.page = pageInfo.value.page; query.page = pageInfo.value.page;
query.page_size = pageInfo.value.page_size; query.page_size = pageInfo.value.page_size;
getTaskSchedules(query) getTaskSchedules(query)
.then((response) => { .then((response) => {
if (response.data) { if (response.data) {
@ -379,46 +433,33 @@ const handleSearch = () => {
}); });
}; };
// 添加一个标志位来避免死循环
let isDateSelectorUpdating = false;
// 日期选择器变化处理 // 日期选择器变化处理
let isDateSelectorUpdating = false;
const handleDateSelectorChange = (value: any) => { const handleDateSelectorChange = (value: any) => {
// 如果正在更新中,则跳过 if (isDateSelectorUpdating) return;
if (isDateSelectorUpdating) {
return;
}
const newStartDate = value.dateRange.start; const newStartDate = value.dateRange.start;
const newEndDate = value.dateRange.end; const newEndDate = value.dateRange.end;
// 添加空值检查以避免数组越界错误
const currentStart = const currentStart =
Array.isArray(query.execution_time) && query.execution_time.length > 0 ? query.execution_time[0] : null; Array.isArray(query.execution_time) && query.execution_time.length > 0 ? query.execution_time[0] : null;
const currentEnd = const currentEnd =
Array.isArray(query.execution_time) && query.execution_time.length > 1 ? query.execution_time[1] : null; Array.isArray(query.execution_time) && query.execution_time.length > 1 ? query.execution_time[1] : null;
// 如果日期范围没有变化,则不执行后续操作 if (currentStart === newStartDate && currentEnd === newEndDate) return;
if (currentStart === newStartDate && currentEnd === newEndDate) {
return;
}
// 设置标志位
isDateSelectorUpdating = true; isDateSelectorUpdating = true;
query.execution_time = [newStartDate, newEndDate]; query.execution_time = [newStartDate, newEndDate];
setTableColumns(); setTableColumns();
handleSearch(); handleSearch();
// 在下一个事件循环重置标志位
setTimeout(() => { setTimeout(() => {
isDateSelectorUpdating = false; isDateSelectorUpdating = false;
}, 0); }, 0);
}; };
// 筛选条件变化处理 // 筛选条件变化处理
const handleFilterChange = (filters: any) => { const handleFilterChange = (filters: any) => {
console.log(filters);
if (typeof filters === 'object' && filters !== null) { if (typeof filters === 'object' && filters !== null) {
Object.keys(filters).forEach((key) => { Object.keys(filters).forEach((key) => {
switch (key) { switch (key) {
@ -435,59 +476,54 @@ const handleFilterChange = (filters: any) => {
query[key] = filters[key]; query[key] = filters[key];
} }
}); });
console.log(query);
handleSearch(); handleSearch();
} }
}; };
// 表格排序变化 // 表格排序变化
const handleTableChange = (pagination: any, sorter: any) => { const handleTableChange = (pagination: any, filters: any, sorter: any) => {
if (sorter && sorter.sorter?.direction === 'ascend' && sorter.sorter?.field) { if (sorter && sorter.order === 'ascend' && sorter.column?.date) {
const column = columns.value.find((col) => col.dataIndex == sorter.sorter.field); const column = sorter.column;
if (column?.date) { query.top_execution_time = DateUtils.formatDate(column.date);
query.top_execution_time = DateUtils.formatDate(column.date);
}
} else { } else {
query.top_execution_time = undefined; query.top_execution_time = undefined;
} }
handleSearch(); handleSearch();
}; };
const handleCellClick = (record: any, rowIndex: any, column: any) => { // 单元格点击事件
const handleCellClick = (record: any, column: any) => {
const accountInfo = { const accountInfo = {
id: record.id, id: record.id,
name: record.name, name: record.name,
platform: record.platform, platform: record.platform,
}; };
const selectedDate = rowIndex.date;
// 检查选中的日期是否小于今天,如果是则不处理 const selectedDate = column.date;
const today = new Date(); const today = new Date();
today.setHours(0, 0, 0, 0); today.setHours(0, 0, 0, 0);
const selectedDateTime = new Date(selectedDate); const selectedDateTime = new Date(selectedDate);
selectedDateTime.setHours(0, 0, 0, 0); selectedDateTime.setHours(0, 0, 0, 0);
if (selectedDateTime < today) { if (selectedDateTime < today) {
console.log('选择的日期已过去,不打开抽屉'); message.warning('选择的日期已过去,无法创建任务');
return; return;
} }
console.log('selectedDate', selectedDate, accountInfo); drawerPopupRef.value?.showDrawer(accountInfo, selectedDate);
drawerPopupRef.value.showDrawer(accountInfo, selectedDate);
}; };
// 任务操作处理 // 任务操作处理
const handleTaskAction = async (action: string, task: any, ...args: any[]) => { const handleTaskAction = async (action: string, task: any, ...args: any[]) => {
console.log('handleTaskAction', action, task, args);
switch (action) { switch (action) {
case 'delete': case 'delete':
currentTask.value = task; currentTask.value = task;
deleteTitle.value = task.type === 1 ? '删除内容稿件排期' : '删除选题排期'; deleteTitle.value = task.type === 1 ? '删除内容稿件排期' : '删除选题排期';
deleteContent.value = `确认删除${task.name || 'AI生成内容'}吗?`; deleteContent.value = `确认删除"${task.name || 'AI生成内容'}"吗?`;
showModal.value = true; showModal.value = true;
break; break;
case 'edit-time': case 'edit-time':
console.log('handleTaskAction edit-time', task, args);
editTaskSchedulesTime(task.id, { execution_time: args[0] }).then((res) => { editTaskSchedulesTime(task.id, { execution_time: args[0] }).then((res) => {
if (res.code === 200) { if (res.code === 200) {
message.success(res.message); message.success(res.message);
@ -495,17 +531,19 @@ const handleTaskAction = async (action: string, task: any, ...args: any[]) => {
} }
}); });
break; break;
case 'goto-detail': case 'goto-detail':
router.push(`/media-account/management-detail/${task.id}`); router.push(`/media-account/management-detail/${task.id}`);
break; break;
case 'ai-create': case 'ai-create':
const res = await generateContent(task.id); const res = await generateContent(task.id);
if (res.code === 200) { if (res.code === 200) {
message.success(res.message); message.success(res.message);
} }
break; break;
case 'edit-task': case 'edit-task':
console.log('edit-task', args[0], typeof args[0]);
const accountInfo = { const accountInfo = {
id: args[0].id, id: args[0].id,
name: args[0].name, name: args[0].name,
@ -514,23 +552,33 @@ const handleTaskAction = async (action: string, task: any, ...args: any[]) => {
const selectedDate = task.execution_time; const selectedDate = task.execution_time;
const date = new Date(selectedDate); const date = new Date(selectedDate);
// 显示抽屉 drawerPopupRef.value?.showDrawer(accountInfo, date);
drawerPopupRef.value.showDrawer(accountInfo, date);
// 等待抽屉打开后再填充数据
nextTick(() => { nextTick(() => {
// 将任务信息回填到draw-popup组件 drawerPopupRef.value?.fillTaskData(task);
drawerPopupRef.value.fillTaskData(task);
}); });
break; break;
} }
}; };
// 创建任务
const handleAddTask = () => {
drawerPopupRef.value?.showDrawer();
};
const handleCreateTask = async (value: any) => {
const res = await createTask(value);
if (res && res.code === 200) {
message.success('创建成功');
handleSearch();
}
};
// 确认删除 // 确认删除
const handleDeleteConfirm = () => { const handleDeleteConfirm = () => {
if (currentTask.value) { if (currentTask.value) {
delTaskSchedules(currentTask.value.id).then(() => { delTaskSchedules(currentTask.value.id).then(() => {
showModal.value = false; showModal.value = false;
message.success('删除成功');
handleSearch(); handleSearch();
}); });
} }
@ -538,7 +586,6 @@ const handleDeleteConfirm = () => {
// 添加账号 // 添加账号
const handleAddAccount = () => { const handleAddAccount = () => {
// 跳转到添加账号页面的逻辑
router.push('/media-account/add'); router.push('/media-account/add');
}; };
@ -574,9 +621,17 @@ const getAccountList = async () => {
} }
}; };
// 分页处理
const handlePageChange = (page: number, pageSize: number) => {
onPageChange(page);
};
const handlePageSizeChange = (current: number, size: number) => {
onPageSizeChange(size);
};
// 初始化 // 初始化
onMounted(() => { onMounted(() => {
// 确保在初始化时设置表格列和执行搜索
setTableColumns(); setTableColumns();
handleSearch(); handleSearch();
getOperators(); getOperators();
@ -589,6 +644,8 @@ onMounted(() => {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
min-height: 42px;
cursor: pointer;
} }
.task-item { .task-item {
@ -603,7 +660,15 @@ onMounted(() => {
.task-more { .task-more {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
}
.task-more-indicator {
color: #8f959f;
height: 19px;
margin-left: 4px;
border-radius: 2px;
cursor: pointer; cursor: pointer;
font-size: 12px;
} }
.no-task { .no-task {
@ -611,6 +676,7 @@ onMounted(() => {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
cursor: pointer;
} }
/* 周末列样式 */ /* 周末列样式 */
@ -619,52 +685,59 @@ onMounted(() => {
} }
/* 今日列样式 */ /* 今日列样式 */
:deep(th.today-column), :deep(.today-column) {
:deep(td.today-column) {
background-color: #6d4cfe !important; background-color: #6d4cfe !important;
} }
:deep(th.today-column) .arco-table-th-item, :deep(.today-column .ant-table-cell) {
:deep(th.today-column) .arco-table-th-item-title {
color: #6d4cfe !important;
background-color: white !important;
font-weight: bold;
}
:deep(th.today-column) .arco-table-th-item-title {
color: #6d4cfe !important;
}
/* 只对 td 单元格应用样式,避免影响表头 */
:deep(td .arco-table-cell) {
padding: 0px !important;
display: flex;
flex-direction: column;
align-items: start;
min-height: 42px;
}
:deep(td .arco-table-cell:first-child) {
align-items: center;
justify-content: center;
}
:deep(td.today-column) .arco-table-cell-wrap {
color: white !important; color: white !important;
} }
/* 抽屉左侧圆角样式 */ :deep(.today-column .ant-table-cell .task-item) {
:deep(.rounded-left .ant-drawer-content) { color: white !important;
border-top-left-radius: 8px !important;
border-bottom-left-radius: 8px !important;
} }
/* 任务弹出框样式 */ /* 添加表格分割线和固定行高 */
:deep(.task-popup-content) { :deep(.ant-table) {
max-height: 300px; border: 1px solid #f0f0f0;
overflow-y: auto; }
:deep(.ant-table-container) {
border-left: 1px solid #f0f0f0;
border-right: 1px solid #f0f0f0;
}
:deep(.ant-table-thead > tr > th) {
border-right: 1px solid #f0f0f0 !important;
background-color: #fafafa;
font-weight: 600;
height: 42px;
padding: 8px 12px;
} }
:deep(.ant-table-tbody > tr > td) {
border-right: 1px solid #f0f0f0 !important;
height: 42px;
padding: 8px 12px;
vertical-align: top;
}
/* 第一列垂直居中 */
:deep(.ant-table-tbody > tr > td:first-child) {
vertical-align: middle !important;
}
/* 移除最后一列的右边框 */
:deep(.ant-table-thead > tr > th:last-child),
:deep(.ant-table-tbody > tr > td:last-child) {
border-right: none !important;
}
.task-container {
display: flex;
flex-direction: column;
height: 100%;
min-height: 42px;
cursor: pointer;
}
/* 分页样式 */ /* 分页样式 */
.pagination-box { .pagination-box {
display: flex; display: flex;
@ -674,17 +747,11 @@ onMounted(() => {
align-items: center; align-items: center;
} }
/* 下拉框样式优化 */
:deep(.arco-dropdown-open .arco-icon-down) {
transform: rotate(180deg);
transition: transform 0.2s ease;
}
.more-content { .more-content {
border-radius: 8px; border-radius: 8px;
background: #fff; background: #fff;
/* Shadow 2 */
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1); box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1);
max-height: 300px;
overflow-y: auto;
} }
</style> </style>