Compare commits

...

1147 Commits

Author SHA1 Message Date
zhangxunhui 815f05b74b handle conflict of routes in infos.js by updating the upstream whilee keeping the blockchain related routes 2022-05-09 16:45:59 +08:00
Xunhui Zhang 11122e6d9f merge conflict 2022-05-09 10:50:35 +08:00
caishi 0b959c4a9b 新建合并请求-底部提交没有显示isFirstLoading控制 2022-05-07 14:55:49 +08:00
caishi 9f58eb1a5a 合并请求需请求两次获取分支的接口 2022-05-07 14:38:49 +08:00
caishi dbadc3f1a0 markdown 左右宽度 2022-05-07 11:30:45 +08:00
caishi 41d24b341c pull 2022-05-07 10:37:54 +08:00
caishi 102f0bc04a 新建issue时报错不清空issue内容 2022-05-07 10:37:10 +08:00
xxq250 7690843ff8 Merge pull request '开源夏令营帮助中心图片限制最大宽度' (#366) from durian/forgeplus-react:gitlink_server into gitlink_server 2022-05-06 10:59:05 +08:00
caishi 284d230821 merge 2022-05-06 10:21:07 +08:00
xxq250 f9773a7e42 Merge pull request '修改Wiki校验样式' (#368) from tongChong/forgeplus-react:hotfix_gitlink into gitlink_server 2022-05-06 10:20:37 +08:00
caishi e4a95602cc 合并请求分支下拉接口以及搜索 2022-05-06 10:19:52 +08:00
何童崇 6a6f8d292f 修改Wiki校验样式 2022-05-06 10:05:22 +08:00
xxq250 4f40755af1 Merge pull request '修改Wiki和视频路径' (#367) from tongChong/forgeplus-react:hotfix_gitlink into gitlink_server 2022-05-05 18:04:26 +08:00
何童崇 70838266ad Merge branch 'gitlink_server' of http://106.75.45.236:3000/Gitlink/forgeplus-react into hotfix_gitlink 2022-05-05 17:35:20 +08:00
何童崇 7fd94060db 修改Wiki高度及视频等路径 2022-05-05 17:34:49 +08:00
谢思 872ca88ae8 开源夏令营帮助中心图片限制最大宽度 2022-05-05 15:50:17 +08:00
xxq250 b5d65e5311 Merge pull request '修改开源夏令营帮助中心对应的wiki仓库' (#365) from durian/forgeplus-react:gitlink_server into gitlink_server 2022-05-05 15:01:20 +08:00
谢思 68f209272c 修改开源夏令营帮助中心wiki仓库 2022-05-05 14:47:03 +08:00
何童崇 ea079eb475 Merge branch 'pre_gitlink_server' of http://106.75.45.236:3000/Gitlink/forgeplus-react into hotfix_gitlink 2022-05-05 09:36:47 +08:00
caishi 51d028336f 新建合并请求-分支下拉搜索 2022-04-29 09:24:05 +08:00
caishi 4cd25cffc7 issue/pr各下拉列表增加搜索功能 2022-04-26 17:48:21 +08:00
caishi b59409e2fc 从各新建合并请求点击时跳转的链接要是默认分支 2022-04-25 14:38:33 +08:00
yystopf 6ac8a9863d Merge pull request '四月第四周里程碑内容' (#361) from gitlink_server into pre_gitlink_server 2022-04-21 17:58:43 +08:00
caishi feb6ad6d89 上传文件 2022-04-21 16:45:17 +08:00
caishi a3c6ad78ee 拖拽上传文件夹 2022-04-20 17:14:14 +08:00
caishi 04e10722e3 install 2022-04-19 11:15:00 +08:00
xxq250 5007377c57 Merge pull request '开源夏令营修改' (#357) from durian/forgeplus-react:feature_GLCC into gitlink_server 2022-04-15 17:28:58 +08:00
谢思 3bf38174b3 修改开源夏令营文件上传服务以及banner图压缩以及新闻公告代码优化 2022-04-15 17:11:20 +08:00
xxq250 eec4fa4204 Merge pull request '新增glcc,开源夏令营' (#356) from tongChong/forgeplus-react:feature_GLCC into gitlink_server 2022-04-15 15:35:41 +08:00
谢思 bce4543ab4 更新正式环境帮助中心wiki仓库 2022-04-15 14:55:53 +08:00
谢思 41c0a29bef Merge branch 'gitlink_server' of http://106.75.45.236:3000/Gitlink/forgeplus-react into feature_GLCC 2022-04-15 14:15:50 +08:00
谢思 3482c17d1f 参与高校更新 2022-04-15 14:14:17 +08:00
谢思 13a54a3e29 提交报名信息二级确认框 2022-04-13 17:21:59 +08:00
谢思 cbf0f827dd 修改文案 2022-04-13 17:00:43 +08:00
谢思 3c358c8175 开源夏令营优化 2022-04-13 16:28:39 +08:00
谢思 ad7f878357 报名提交确认框 2022-04-13 15:16:50 +08:00
谢思 fc6b6dbede 报名截至时间 2022-04-13 10:35:36 +08:00
谢思 e7a23064a8 限制开源夏令营报名时间 2022-04-13 09:59:48 +08:00
谢思 947b7a4be6 Merge branch 'feature_GLCC' of http://106.75.45.236:3000/tongChong/forgeplus-react into feature_GLCC 2022-04-12 17:31:38 +08:00
谢思 c601d6681b 开源xia夏令营issue 2022-04-12 17:30:50 +08:00
何童崇 6649db21b1 样式bug 2022-04-12 17:25:50 +08:00
谢思 aac55ea94f 开源夏令营issue 2022-04-12 16:18:59 +08:00
谢思 baf69efac8 开源夏令营issue 2022-04-12 14:46:50 +08:00
谢思 d49659deb3 引入组件 2022-04-12 14:05:34 +08:00
谢思 a6ed2ca451 合并代码+报名页添加banner图 2022-04-12 13:57:57 +08:00
谢思 83c2517824 开源夏令营报名页+帮助页+首页-组织方、联系我们 2022-04-12 13:48:47 +08:00
何童崇 27b6732ac4 修改glcc首页 2022-04-11 17:54:41 +08:00
谢思 60c01d8682 首页-合作伙伴 2022-04-08 17:34:37 +08:00
caishi 5daada4b98 issue按钮显示 2022-04-08 16:37:35 +08:00
何童崇 5156441c2a 首页静态页面完成75% 2022-04-08 15:34:10 +08:00
谢思 de206759bd Merge branch 'feature_GLCC' of http://106.75.45.236:3000/tongChong/forgeplus-react into feature_GLCC 2022-04-08 15:33:55 +08:00
谢思 d375ed8b02 帮助中心 2022-04-08 15:32:34 +08:00
谢思 5edf45988e 开源夏令营报名页面 2022-04-08 13:47:44 +08:00
caishi 4c0f3497a9 新建发行版 2022-04-07 18:10:00 +08:00
caishi d4a59e9a94 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2022-04-07 17:58:34 +08:00
何童崇 d91446dc12 初始化glcc 2022-04-07 09:47:38 +08:00
xxq250 87f26db26d Merge pull request '登录后如果打开首页,第一次默认进入个人详情页' (#355) from tongChong/forgeplus-react:hotfix_gitlink into gitlink_server 2022-04-06 14:36:49 +08:00
何童崇 4a4d767710 登录后如果打开首页,第一次默认进入个人详情页 2022-04-06 14:28:55 +08:00
caishi 4f71cd1c0a ignore 2022-04-03 13:21:27 +08:00
caishi 1f7dda2526 仓库设置 2022-04-01 19:19:15 +08:00
yystopf e8a74dc780 Merge pull request '合并最新代码' (#354) from gitlink_server into pre_gitlink_server 2022-04-01 19:18:33 +08:00
caishi fc3a1e4088 issue详情-word 2022-03-31 14:51:10 +08:00
caishi 335e484167 style 2022-03-30 16:13:42 +08:00
caishi 4d613fd07f 同上 2022-03-29 09:51:20 +08:00
caishi cb87a9d075 403,404 2022-03-29 09:47:38 +08:00
caishi 25a3e10c27 issues 2022-03-23 16:14:00 +08:00
xxq250 60327188eb Merge pull request '关于我们职位招聘显示不全' (#349) from gitlink_server into pre_gitlink_server 2022-03-17 17:13:09 +08:00
xxq250 4b3e62b907 Merge pull request '修复issue' (#348) from durian/forgeplus-react:gitlink_server into gitlink_server 2022-03-17 17:11:10 +08:00
谢思 714b90581b 关于我们职位招聘显示不全 2022-03-16 16:29:16 +08:00
xxq250 ff1e063979 Merge pull request '数据统计->专业定位不显示数据问题修复' (#344) from durian/forgeplus-react:gitlink_server into gitlink_server 2022-03-03 11:43:53 +08:00
unknown 4264c127d9 数据统计->专业定位不显示数据问题修复 2022-03-03 09:53:27 +08:00
xxq250 400bd28801 Merge pull request '0304-issue代码修改' (#343) from tongChong/forgeplus-react:gitlink_server into gitlink_server 2022-03-02 15:57:06 +08:00
何童崇 15b2ce6ea9 修改组织图片issue 2022-03-02 15:10:18 +08:00
何童崇 3ae9284494 0304-issue 2022-03-02 14:10:23 +08:00
caishi fb63377996 login页面logo更新 2022-03-02 10:27:22 +08:00
caishi 9527f69486 组织成员-每页条数 2022-02-24 14:22:09 +08:00
caishi b82e7d9d69 组织成员-接口参数page、limit 2022-02-22 11:39:53 +08:00
caishi 9db4f1b18c 0216-issue 2022-02-16 10:37:24 +08:00
caishi c13c7025dd webhook-新建 2022-02-11 09:56:06 +08:00
caishi d8384ab4bd 引擎-权限-非报告者即可 2022-02-10 16:00:54 +08:00
xxq250 882f0760e8 Merge pull request 'issue列表筛选bug以及新增按钮' (#337) from caishi/forgeplus-react:gitlink_server into gitlink_server 2022-01-26 13:47:05 +08:00
caishi 5e337cb94f issue列表排序时其它筛选条件不起作用 2022-01-26 11:35:36 +08:00
caishi 569bc39e1e cursor 2022-01-24 15:57:11 +08:00
caishi 0e643287f9 issue列表:筛选清除按钮、切换时清除分页 2022-01-21 15:29:14 +08:00
xxq250 3d9b43a784 Merge pull request 'issue列表筛选保存、项目名含http报错等问题' (#336) from caishi/forgeplus-react:gitlink_server into gitlink_server 2022-01-14 17:37:28 +08:00
caishi ed2c16661a issue-筛选保存 2022-01-14 17:33:25 +08:00
xxq250 8e4819217c Merge pull request '贡献者返回字段改为list' (#334) from caishi/forgeplus-react:gitlink_server into gitlink_server 2022-01-10 18:03:00 +08:00
caishi d03182cbd4 贡献者返回字段改为list 2022-01-10 18:00:01 +08:00
xxq250 7416d9bcb6 Merge pull request '修改头像、组织添加成员等功能' (#333) from caishi/forgeplus-react:gitlink_server into gitlink_server 2022-01-07 16:57:21 +08:00
caishi 3bfbba2303 同上-update 2022-01-07 16:32:01 +08:00
caishi fa47ae9b5e 设置页面增加修改功能 2022-01-07 11:00:52 +08:00
caishi ac93cfbc8a 截取头像-正方形 2022-01-06 14:03:41 +08:00
caishi bb7732c666 修改后更新 2022-01-06 09:31:59 +08:00
caishi 81d8a866f0 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2022-01-05 11:48:37 +08:00
caishi 0a334abede 修改头像组件 2022-01-05 11:48:31 +08:00
xxq250 1ada91917e Merge pull request 'issue-项目首页和个人主页、点击新开页' (#332) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-31 16:52:36 +08:00
caishi 25f193a1d3 点击新开页 2021-12-30 17:21:18 +08:00
caishi e8bcebbf71 notice-show 2021-12-29 11:41:34 +08:00
xxq250 afaef5f0d0 Merge pull request 'issue-以及分支含特殊字符的处理' (#330) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-28 15:52:54 +08:00
caishi e096e1aa50 branch 转义 2021-12-28 15:50:25 +08:00
caishi ec2d51e0d3 基本资料-性别、单位非必填 2021-12-24 14:35:07 +08:00
xxq250 4ab36af1a9 Merge pull request 'fix issue' (#329) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-24 09:47:40 +08:00
caishi b0088a24ae 分支-特殊字符 2021-12-23 14:07:12 +08:00
caishi 2f25643fcc issue-2021-12-22 2021-12-22 18:29:23 +08:00
caishi 91338c863c explore/all 筛选 2021-12-21 14:17:14 +08:00
xxq250 9786aaa4fe Merge pull request '密码管理+issue' (#327) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-20 17:50:23 +08:00
caishi 34f108118b 文案更新’ 2021-12-20 17:37:02 +08:00
caishi 61abecde53 密码管理 2021-12-20 17:25:25 +08:00
xxq250 326aede507 Merge pull request 'issue' (#324) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-17 16:24:06 +08:00
caishi c3cc105468 易修改为疑修 2021-12-17 15:49:52 +08:00
caishi 80e20a9cca 热门开发者-无项目情况 2021-12-17 10:13:00 +08:00
xxq250 bb8e671c20 Merge pull request 'issue' (#322) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-16 16:11:43 +08:00
caishi 1954a4f8d3 个人主页-组织-sort 2021-12-16 16:08:13 +08:00
caishi b3dec1ee8e Merge branches 'gitlink_server' and 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-15 09:46:44 +08:00
caishi 278cdba352 commit clear 2021-12-15 09:46:39 +08:00
caishi e25de315f8 clear 2021-12-15 09:31:43 +08:00
xxq250 6bbdb3d7a8 Merge pull request '教学实践页面' (#318) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-12-14 14:11:27 +08:00
谢思 eb254de9fd 教学实践页面顶部增加跳转 2021-12-14 13:52:27 +08:00
xxq250 c9279b274e Merge pull request '修改issue详情路由及websocket定时请求' (#316) from tongChong/forgeplus-react:gitlink_server into gitlink_server 2021-12-13 16:58:29 +08:00
何童崇 ce477020de Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-13 16:18:34 +08:00
xxq250 21078af26f Merge pull request 'issue修改' (#314) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-12-13 16:08:30 +08:00
何童崇 bc5ec6103e 兼容特定情况下的报错 2021-12-13 16:04:36 +08:00
何童崇 fcc53f5278 上传websocket修改 2021-12-13 15:48:31 +08:00
谢思 da69213b8e Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-13 15:34:26 +08:00
xxq250 365ff99785 Merge pull request '教学实践' (#315) from durian/forgeplus-react:feature_teaching into gitlink_server 2021-12-13 15:25:02 +08:00
谢思 e206de9f1f Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into feature_teaching 2021-12-13 15:09:17 +08:00
何童崇 358880bfd2 修改issue详情路由 2021-12-13 15:01:03 +08:00
谢思 63971edc44 教学实践优化 2021-12-13 13:19:26 +08:00
谢思 020a976135 易修修改 2021-12-13 11:04:17 +08:00
谢思 29d74526d1 教学实践页面 2021-12-10 15:42:50 +08:00
xxq250 2e1cf5ad82 Merge pull request '针对educoder项目做限制' (#313) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-09 18:23:02 +08:00
caishi 56c8f7fa82 educoder项目添加只读标识 2021-12-09 17:31:34 +08:00
caishi 4db125545f educoder项目-图片不能点击 2021-12-09 14:04:54 +08:00
caishi ecd1a8444e Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-09 11:03:57 +08:00
caishi 0a0705d42c educoder项目无提交记录信息 2021-12-09 11:03:52 +08:00
xxq250 be0e0134f3 Merge pull request 'issue' (#312) from hc1913847458/forgeplus-react:gitlink_server into gitlink_server 2021-12-09 10:43:40 +08:00
hucong 6904116a3a Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-09 10:15:35 +08:00
hucong 421218ef77 issue 2021-12-09 10:15:30 +08:00
xxq250 5f89356679 Merge pull request 'issue以及需求更改' (#311) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-09 09:54:14 +08:00
hucong cab540b812 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-09 09:50:35 +08:00
caishi 2ffa835b84 代码库-贡献者和语言使用单独接口,detail.json接口不返回这两个数组 2021-12-09 09:48:47 +08:00
caishi e93778b004 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-08 15:21:25 +08:00
caishi 232e09c04f clear 2021-12-08 15:20:55 +08:00
xxq250 459e05f465 Merge pull request '易修声明功能' (#310) from starlee/forgeplus-react:lzx-claim-2.0 into gitlink_server 2021-12-08 15:15:36 +08:00
caishi 5ee3519c21 项目首页增加搜索功能 2021-12-08 10:11:13 +08:00
caishi 4270d1d8eb @我列表头像链接错误 2021-12-07 17:28:25 +08:00
hucong dd298380a7 相关文案修改 2021-12-07 16:31:51 +08:00
caishi 255ae11012 项目首页-educoder平台头像处理 2021-12-07 16:03:37 +08:00
caishi ec4e70d7f0 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-12-06 16:20:09 +08:00
caishi 758600e4d0 搜索页翻页距离底部的距离 2021-12-03 10:47:47 +08:00
xxq250 7d4def6056 Merge pull request '项目首页-精选项目-固定八个组织的logo信息' (#307) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-02 17:30:42 +08:00
caishi a1cc59e89b 项目首页-精选项目-固定八个组织 2021-12-02 16:27:11 +08:00
xxq250 9e4ca503df Merge pull request 'issue-优化' (#306) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-02 14:16:09 +08:00
caishi 472ea69e29 上线后-update 2021-12-01 18:04:49 +08:00
xxq250 3c5e10fa58 Merge pull request '新建文件不能包含特殊字符:!@\/:"<>|?%' (#305) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-12-01 11:10:48 +08:00
caishi 915bf69e6f 文件名特殊字符判断 2021-12-01 11:06:10 +08:00
xxq250 a00452b960 Merge pull request 'issue' (#304) from hc1913847458/forgeplus-react:gitlink_server into gitlink_server 2021-12-01 09:01:48 +08:00
hucong 3eeed4620c issue 2021-12-01 08:51:17 +08:00
xxq250 54858bcd39 Merge pull request 'issue' (#303) from hc1913847458/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 18:37:23 +08:00
hucong 6820fed5b5 issue 2021-11-30 18:34:41 +08:00
xxq250 82ac32d84f Merge pull request 'issue修改-merge 解决冲突' (#302) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 18:07:33 +08:00
xxq250 fe6f8a9349 Merge pull request 'issue' (#301) from hc1913847458/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 18:04:42 +08:00
caishi d4f0d21608 添加成员-删了后不能重复添加成员 2021-11-30 17:55:29 +08:00
hucong 56c867a4a3 issue 2021-11-30 17:51:50 +08:00
hucong bd219c0b41 issue 2021-11-30 17:11:56 +08:00
caishi 1292019aac merge-conflicts 2021-11-30 17:00:58 +08:00
caishi 33e1b7e400 合并请求-权限 2021-11-30 16:58:48 +08:00
xxq250 9af269061d Merge pull request '优化复制issue' (#300) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 16:58:18 +08:00
谢思 2557b36cea Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-30 16:54:09 +08:00
谢思 f6c84e4fad 复制issue 2021-11-30 16:52:12 +08:00
xxq250 161866aaaf Merge pull request 'issue' (#299) from hc1913847458/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 16:52:02 +08:00
hucong 3151314529 易修 2021-11-30 16:27:13 +08:00
hucong 775434d856 易修 2021-11-30 15:44:43 +08:00
caishi b802fd2fbd merge+update 2021-11-30 15:37:28 +08:00
caishi cee82314da merge 2021-11-30 15:29:32 +08:00
caishi 7295a71bc5 标记显示宽度 2021-11-30 15:27:11 +08:00
xxq250 4971dc0a3d Merge pull request 'issue' (#298) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 15:26:36 +08:00
caishi e591de00fd 加入项目申请按钮 2021-11-30 15:22:23 +08:00
谢思 c331dbb445 优化复制issue@列表 2021-11-30 15:05:40 +08:00
caishi 36a58c0fe3 合并请求-字段 2021-11-30 14:16:42 +08:00
caishi 0e949110fd 后端新增字段-非成员不能修改编辑易修 2021-11-30 14:07:22 +08:00
caishi 4ffb2acc9c 编辑标记-长度 2021-11-30 13:57:05 +08:00
xxq250 0991ba4698 Merge pull request 'issue修改' (#297) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 11:37:41 +08:00
caishi f82a51fd83 merge 2021-11-30 11:28:43 +08:00
caishi 98ed1794cf 代码库 2021-11-30 11:28:02 +08:00
baladiwei 6e756826f7 Merge pull request 'issue' (#296) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-11-30 11:27:09 +08:00
谢思 684f9dbfe1 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-30 11:20:20 +08:00
谢思 9577478e97 issue 2021-11-30 11:19:55 +08:00
caishi ff9beb0949 issue-修改‘ 2021-11-30 11:11:25 +08:00
caishi f4055e50e2 个人中心devops-立即激活跳转报错 2021-11-30 09:48:35 +08:00
caishi af8a5058b8 devops 2021-11-30 09:15:33 +08:00
xxq250 efb918e21d Merge pull request 'issue-优化' (#295) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-29 17:42:15 +08:00
caishi a9a3f9c977 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-29 16:26:35 +08:00
caishi d6b0eee067 update 2021-11-29 16:25:55 +08:00
xxq250 ca409857bb Merge pull request '修改wiki调用' (#294) from tongChong/forgeplus-react:gitlink_server into gitlink_server 2021-11-29 16:20:39 +08:00
何童崇 219590a0cd 修改wiki调用 2021-11-29 16:07:51 +08:00
caishi 2f88227388 devops-name update 2021-11-29 14:35:05 +08:00
caishi a3b943f744 同上-代码编辑器选中高亮 2021-11-29 14:17:33 +08:00
caishi 8b4fc88b1d merge 编辑器滚动问题‘
2021-11-29 14:16:58 +08:00
caishi 131d8fa81c 加入项目错误提示 2021-11-29 14:01:23 +08:00
xxq250 3c2e899a20 Merge pull request 'issue-优化' (#291) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-29 11:02:21 +08:00
caishi 07511efbd6 issue-优化 2021-11-29 10:55:50 +08:00
caishi 3eaf1dc214 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-29 09:56:05 +08:00
caishi 9608f204e8 优化 2021-11-29 09:54:54 +08:00
xxq250 534a6bdeab Merge pull request '优化' (#290) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-11-29 09:52:58 +08:00
谢思 ca5c279ac0 修改意见反馈的指派成员 2021-11-29 09:34:45 +08:00
谢思 ce3b460717 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-29 09:03:29 +08:00
xxq250 1c87cf6b98 Merge pull request '解决冲突以及issue' (#289) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-26 15:17:00 +08:00
caishi 614f0ea436 add aboutus-update 2021-11-26 14:29:36 +08:00
xiaoxiaoqiong a3ae80aa22 Merge branch 'feature_aboutus' into gitlink_server 2021-11-26 14:27:34 +08:00
baladiwei 70f9cd0997 Merge pull request '优化代码' (#288) from durian/forgeplus-react:about_us into feature_aboutus 2021-11-26 14:15:08 +08:00
谢思 fa247e39bf 优化代码 2021-11-26 14:11:09 +08:00
caishi 97a81572a9 package 2021-11-26 14:09:15 +08:00
caishi e084b015cf Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2021-11-26 14:08:11 +08:00
xiaoxiaoqiong cbe427a114 解决merge关于我们冲突 2021-11-26 14:02:47 +08:00
xiaoxiaoqiong f842f75065 mrege develop 2021-11-26 13:40:27 +08:00
caishi c8eed99f5d 个人主页-贡献度无数据时只显示x/y轴的内容 2021-11-26 10:59:33 +08:00
xxq250 fbd4273603 Merge pull request '列表样式,合并请求路由值根据接口改为number或者id' (#286) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-26 10:19:02 +08:00
caishi 9299a1667e gitlink首页style 2021-11-26 10:15:53 +08:00
baladiwei 10c9891b7b Merge pull request '关于我们' (#285) from durian/forgeplus-react:about_us into feature_aboutus 2021-11-25 16:53:39 +08:00
谢思 e5f8eac497 【关于我们】页面 2021-11-25 16:50:05 +08:00
caishi 633dee9655 合并请求列表跳转链接改为number或者id 2021-11-25 15:29:52 +08:00
starlee e7b7d20f94 add claim mechanism 2021-11-25 14:05:13 +08:00
xxq250 801c544f65 Merge pull request '前端页面优化' (#282) from hc1913847458/forgeplus-react:testdev into develop 2021-11-25 09:43:19 +08:00
hucong 5a1fcb1443 403,404登录验证 2021-11-24 18:31:46 +08:00
谢思 cf1d2dd5ba 修改招聘岗位要求 2021-11-24 17:43:42 +08:00
谢思 121b1aaab1 关于我们0.8版 2021-11-24 17:16:59 +08:00
谢思 3e42a620d9 关于我们0.5版 2021-11-23 21:47:52 +08:00
hucong 33297226ea 页面优化 2021-11-23 18:00:05 +08:00
谢思 982536b547 关于我们0.1版 2021-11-23 17:30:05 +08:00
hucong fd4046af04 issue 2021-11-23 15:04:34 +08:00
hucong 36683ad69b 团队介绍根据不同团队权限显示不同内容 2021-11-23 15:00:06 +08:00
hucong 2262508777 前端403,404,500页面优化 2021-11-23 14:39:44 +08:00
谢思 4f64b840b0 修改 fork项目失败原因为已经复刻过则跳转到复刻仓库,合并请求【仓库:分支】显示统一样式 2021-11-23 14:39:23 +08:00
谢思 a04b8de39e 刷新合并请求页面之后新建合并请求报错(恢复2.0版) 2021-11-23 10:13:11 +08:00
谢思 4d99c97370 刷新新建合并请求页面之后新建合并请求报错3.0 2021-11-23 09:48:36 +08:00
谢思 58f7c984a2 处理页面刷新之后创建合并请求报错2.0 2021-11-22 17:12:20 +08:00
hucong 9db8455de8 项目导航菜单悬停优化 2021-11-22 15:40:59 +08:00
谢思 4b1bccd1cd 处理页面刷新之后创建合并请求报错问题 2021-11-22 15:25:24 +08:00
jasder eff12234fa Merge pull request '意见反馈' (#277) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-11-22 11:03:47 +08:00
谢思 77fdafd58b 解决css文件冲突 2021-11-22 10:15:41 +08:00
谢思 5fea412ca8 解决css文件冲突 2021-11-22 09:36:54 +08:00
yystopf 5f15b03462 Merge pull request 'merge issue上线' (#273) from caishi/forgeplus-react:gitservers into gitlink_server 2021-11-19 14:34:13 +08:00
caishi a2f63732cf build 2021-11-19 14:26:41 +08:00
caishi abf9b25651 iconfont 2021-11-19 14:21:39 +08:00
谢思 bf4ef7023d 意见反馈仓库信息更换成/Gitlink/forgeplus,issue指派成员更换成36480 2021-11-19 14:18:45 +08:00
谢思 f463b20de7 Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-19 11:13:57 +08:00
谢思 7934f07cea 代码库、易修页面未登录状态创建修改跳登录框代码层面优化,之后可实现复用 2021-11-19 11:11:14 +08:00
caishi f19a9f6ceb clear 2021-11-19 09:19:48 +08:00
caishi 8b5e159cac Merge branch 'develop' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-19 09:18:50 +08:00
caishi 16dff252c0 issue 2021-11-18 17:36:03 +08:00
谢思 fe0fab7b61 顶部导航栏搜索框还原 2021-11-18 17:08:03 +08:00
谢思 4e18d13b6b 注册和找回密码优化 2021-11-18 15:37:06 +08:00
谢思 d81d456d76 顶部搜索优化 2021-11-18 10:55:10 +08:00
jasder 8c66d817b5 Merge pull request 'fix 合并主干开发分支' (#267) from develop into gitlink_server 2021-11-18 10:53:15 +08:00
jasder 7579dc8a59 Merge pull request 'ADD @功能' (#266) from feature_notification_v2 into develop 2021-11-18 10:51:43 +08:00
谢思 3087e5471a 顶部搜索栏为空处理 2021-11-18 10:40:53 +08:00
谢思 4e8f304262 顶部输入框样式调整 2021-11-18 10:28:15 +08:00
谢思 48e9ca6706 意见反馈跳转调试 2021-11-17 15:06:55 +08:00
谢思 fc8a476aa3 修改意见反馈新建issue仓库和指派成员 2021-11-17 14:41:17 +08:00
jasder 89773b5036 Merge pull request '文案调整' (#264) from hc1913847458/forgeplus-react:testdev into develop 2021-11-17 14:31:12 +08:00
谢思 387387108a 意见反馈功能+未登录状态显示创建issue按钮 2021-11-17 14:03:10 +08:00
hucong 2617831a9f 文案调整 2021-11-16 18:29:55 +08:00
hucong f0747eab05 文案调整 2021-11-16 18:28:30 +08:00
caishi 789e84211c 小屏内容宽度调整 2021-11-16 15:54:45 +08:00
谢思 12ce0aa4f5 意见反馈功能 2021-11-16 13:18:03 +08:00
jasder 4a322d1e2e Merge pull request '登陆注册功能' (#262) from durian/forgeplus-react:gitlink_server into gitlink_server 2021-11-16 10:16:59 +08:00
谢思 a38b4af8bc 意见反馈功能 2021-11-16 09:21:13 +08:00
jasder d1743b350d Merge pull request '项目tab栏wiki添加中文' (#258) from hc1913847458/forgeplus-react:testdev into develop 2021-11-15 11:01:37 +08:00
baladiwei 7fd790fe7d Merge pull request '@我功能' (#261) from durian/forgeplus-react:feature_notification_v2 into feature_notification_v2 2021-11-12 14:21:39 +08:00
谢思 c48e3584c3 删除之前atwo.js的引入 2021-11-12 14:17:06 +08:00
谢思 d0ca09e780 Merge branch 'feature_notification_v2' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2 2021-11-12 14:08:56 +08:00
baladiwei ed3bf55f90 Merge pull request 'merge old version' (#260) from feature_noti_v2 into feature_notification_v2 2021-11-12 14:07:07 +08:00
谢思 7ff29fec70 未及时更新评论内容 2021-11-12 13:50:35 +08:00
谢思 79331db271 登陆注册bug修复 2021-11-12 12:33:46 +08:00
hucong fbfd5f175d 项目tab栏合并请求增加英文 2021-11-12 10:34:56 +08:00
hucong 07101f5770 项目tab栏wiki增加中文 2021-11-12 10:29:53 +08:00
yystopf 652de9b441 Merge pull request '查看源代码的浏览器logo以及页面添加的监听事件的移除' (#257) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-11 16:38:14 +08:00
caishi f2a660d595 ico + 移除滚动事件 2021-11-11 16:35:37 +08:00
jasder 711c2e57da Merge pull request '首页相关需求、issues修改' (#256) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-11 13:44:38 +08:00
caishi 6fc441d7c5 issues 2021-11-11 13:41:55 +08:00
谢思 a94d02bb8a atwo markdown渲染 2021-11-11 11:31:42 +08:00
谢思 cc2dd35ff4 编辑合并请求最后一行@弹框被遮挡 2021-11-10 20:45:23 +08:00
谢思 f003a99779 @我功能。 2021-11-10 16:47:22 +08:00
caishi b4e2c6148a logo and issues 2021-11-10 15:07:39 +08:00
谢思 b1ead191a6 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2 2021-11-10 10:28:23 +08:00
caishi 0735968e73 图片压缩替换 2021-11-10 10:21:01 +08:00
caishi 37f5bce087 pr/Anchor等问题 2021-11-09 16:38:53 +08:00
caishi 951792dc11 style update 2021-11-09 11:20:36 +08:00
caishi 7d7f265ffb Merge branch 'gitlink_server' of https://git.trustie.net/Gitlink/forgeplus-react into gitlink_server 2021-11-09 09:49:54 +08:00
jasder 7495c54f8d Merge pull request 'fix 发布gitlink server 版本' (#252) from jasder/forgeplus-react:gitlink_server into gitlink_server 2021-11-09 09:49:30 +08:00
jasder 631f8ceeea FIX 合并登陆注册功能分支代码 2021-11-09 09:45:36 +08:00
jasder d70ddfb2f7 Merge remote-tracking branch 'gitlink/gitlink_server' into gitlink_server 2021-11-09 09:31:23 +08:00
jasder 54741a6d8a Merge branch 'develop' into gitlink_server 2021-11-09 09:31:05 +08:00
jasder 116c3e531f Merge pull request '登陆注册功能' (#250) from durian/forgeplus-react:featrue_login_and_register into featrue_login_and_register 2021-11-09 09:19:36 +08:00
谢思 990cfe2781 代码优化 2021-11-08 16:44:38 +08:00
谢思 66e1235c3b 找回密码次数上限+找回密码确认密码优化 2021-11-08 16:39:37 +08:00
谢思 76fdff6737 背景图片过大加载慢 2021-11-08 16:15:04 +08:00
谢思 55a6f93fe3 atwho 2021-11-08 16:04:19 +08:00
谢思 4bc79b5153 添加第三方登录 2021-11-08 15:43:55 +08:00
谢思 ac4488a907 atwho 2021-11-08 15:14:04 +08:00
caishi 3085e40426 hide 2021-11-08 15:12:12 +08:00
jasder ea979b78ee Merge pull request '目录跳转问题' (#248) from hc1913847458/forgeplus-react:testdev into develop 2021-11-08 14:34:11 +08:00
hucong b1775e5158 目录跳转问题 2021-11-08 14:05:39 +08:00
hucong 3678b8eb72 issue 2021-11-08 13:58:46 +08:00
谢思 12d8f5bf5d 登陆注册功能 2021-11-08 13:29:12 +08:00
hucong e04fb11194 目录跳转问题 2021-11-05 19:03:24 +08:00
hucong 010edf3cb2 目录跳转问题 2021-11-05 18:31:14 +08:00
jasder ab26a528b6 Merge pull request 'gitlink首页数据绑定以及需求更改、文案修改等' (#246) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-11-04 14:18:37 +08:00
jasder 6d39e25667 Merge pull request 'pr中的用户名称显示问题' (#244) from hc1913847458/forgeplus-react:testdev into develop 2021-11-03 18:46:12 +08:00
caishi a2ea832208 gitlink首页-数据绑定 2021-11-03 18:43:41 +08:00
caishi d1bc3680b9 gitlink首页 2021-11-02 14:15:19 +08:00
caishi 08416390e5 update 2021-11-02 10:23:04 +08:00
hucong 190200d1e6 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev 2021-11-01 14:41:27 +08:00
hucong b124364203 pr中用户名称显示问题 2021-11-01 14:40:41 +08:00
谢思 2078a044b6 at我列表 2021-11-01 09:31:08 +08:00
caishi 35c2f63c55 update 2021-10-29 18:22:45 +08:00
caishi 30c61f0a7d 上线update 2021-10-29 17:01:55 +08:00
caishi 743dabd553 需求+设计+bug修改 2021-10-29 14:18:30 +08:00
caishi 015296e065 merge gitlink首页、项目首页,update 2021-10-29 09:39:59 +08:00
jasder 48c21ac245 Merge pull request 'merge' (#241) from caishi/forgeplus-react:gitlink_server into gitlink_server 2021-10-28 18:26:10 +08:00
caishi a93b8a08c9 register 2021-10-28 18:23:22 +08:00
jasder 1c48ffb130 合并平台首页、项目首页功能分支,并处理代码冲突 2021-10-28 18:11:07 +08:00
jasder 0ee9280bb1 Merge pull request 'fix 开发主干分支并入gitlink服务分支' (#239) from develop into gitlink_server 2021-10-28 17:54:22 +08:00
jasder e785e9a358 Merge pull request 'ADD 项目首页功能并入开发分支' (#238) from featrue_project_homepage into develop 2021-10-28 17:53:05 +08:00
jasder b3b95e9856 Merge pull request 'merge' (#237) from caishi/forgeplus-react:featrue_project_homepage into featrue_project_homepage 2021-10-28 17:51:56 +08:00
caishi 5be8ead356 Merge branch 'develop' of https://git.trustie.net/Gitlink/forgeplus-react into featrue_project_homepage 2021-10-28 17:48:56 +08:00
jasder 7d78919c4a Merge pull request 'FIX 解决冲突' (#236) from pre_develop into develop 2021-10-28 17:48:45 +08:00
jasder d5b4c5425f Merge pull request 'wip' (#235) from pre_develop_dev into pre_develop 2021-10-28 17:48:03 +08:00
caishi f259f05cdc Merge branch 'develop' of https://git.trustie.net/Gitlink/forgeplus-react into featrue_project_homepage 2021-10-28 17:46:55 +08:00
jasder 95cd289373 Merge pull request '项目首页改版更新' (#232) from caishi/forgeplus-react:featrue_project_homepage into featrue_project_homepage 2021-10-28 17:43:43 +08:00
jasder e739f5b786 Merge pull request 'fix 更改注册页面备案号等相关信息' (#231) from jasder/forgeplus-react:gitlink_server into gitlink_server 2021-10-28 17:43:16 +08:00
caishi c79be9a597 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into featrue_project_homepage 2021-10-28 17:41:54 +08:00
jasder fb03565a25 Merge pull request '并入开发分支' (#230) from pre_develop_dev into develop 2021-10-28 17:39:40 +08:00
jasder 7ec53a246c Merge pull request 'logo 从接口获取 nav_logo_url' (#226) from caishi/forgeplus-react:feature_homepage into feature_homepage 2021-10-28 17:30:39 +08:00
jasder 56946f94e8 更改域名相关信息 2021-10-28 17:29:35 +08:00
caishi 61ee3fe36f 注册页面相关信息修改 2021-10-28 17:25:50 +08:00
caishi d5f989bbe2 update 2021-10-28 17:08:36 +08:00
caishi f5817e5150 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage 2021-10-28 09:31:35 +08:00
caishi 1c24baf3b9 数据绑定 2021-10-28 09:31:08 +08:00
caishi 3d3ef19d4a 项目首页 banner 2021-10-26 09:40:35 +08:00
jasder 7b77c46915 Merge pull request '导入仓库链接和项目issue优化更改' (#228) from hc1913847458/forgeplus-react:testdev into pre_develop_dev 2021-10-25 17:33:48 +08:00
hucong 746f552a21 issue 2021-10-25 16:37:50 +08:00
hucong 7872d5ecab 导入链接优化 2021-10-25 15:56:06 +08:00
hucong 60da6bd110 导入链接优化 2021-10-25 15:46:57 +08:00
caishi a3bbf6b1c1 头部logo 2021-10-25 11:29:21 +08:00
caishi d37709b1a5 首页文件夹 2021-10-25 11:24:21 +08:00
hucong aeff357660 项目页icon更改 2021-10-25 11:09:41 +08:00
hucong 0e6cb3954a 项目页icon更改 2021-10-25 11:09:13 +08:00
hucong ae12618c0c 导入链接显示优化 2021-10-25 10:45:40 +08:00
谢思 1c46617144 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2 2021-10-23 19:52:58 +08:00
谢思 ec133a6880 添加todo 2021-10-23 19:50:17 +08:00
谢思 bcdb631c20 删除引入的js文件 2021-10-23 19:43:58 +08:00
谢思 8021d96cd8 atwho列表 2021-10-23 19:39:54 +08:00
jasder 3bf9de2d4c Merge pull request 'FIX 合并主干开发分支功能' (#220) from develop into master 2021-10-22 16:55:27 +08:00
jasder 6be0d12e8c Merge pull request 'cherry pick' (#219) from jasder/forgeplus-react:develop into develop 2021-10-22 16:54:51 +08:00
caishi b000fc11f3 iconfont + style 2021-10-22 16:52:27 +08:00
caishi 914966bd39 detail 2021-10-22 16:42:43 +08:00
caishi f89f4b6628 Merge branch 'standalone_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage 2021-10-22 14:33:40 +08:00
jasder 7407545d1f Merge pull request '冲突引起iconfont丢失' (#215) from caishi/forgeplus-react:standalone into standalone 2021-10-22 14:05:27 +08:00
caishi f0ffc9a29c iconfont + style 2021-10-22 13:56:34 +08:00
jasder 987eb39681 Merge pull request 'standalone merge problem' (#214) from caishi/forgeplus-react:standalone into standalone 2021-10-22 11:44:51 +08:00
caishi 848109afe8 settings 2021-10-22 11:40:41 +08:00
caishi d7bdb35bb7 merge bug 2021-10-22 11:28:22 +08:00
caishi 254b3173d1 merge 2021-10-22 11:25:44 +08:00
caishi 44f06b7305 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage
# Conflicts:
#	public/css/iconfont.css
#	public/css/iconfont.js
#	public/css/iconfont.json
#	public/css/iconfont.ttf
#	public/css/iconfont.woff
#	public/css/iconfont.woff2
#	src/App.js
#	src/forge/Head/Footer.jsx
#	src/modules/tpm/TPMIndexHOC.js
2021-10-22 10:33:18 +08:00
jasder b16e95923a Merge pull request 'FIX bug' (#211) from jasder/forgeplus-react:standalone into standalone 2021-10-22 10:11:03 +08:00
jasder 98a7f73c04 Merge branch 'master' into standalone 2021-10-22 10:09:53 +08:00
jasder a0fa4eccf0 Merge pull request 'FIX bug' (#209) from jasder/forgeplus-react:develop into develop 2021-10-22 10:09:16 +08:00
jasder d81b40969a FIX 项目路由改造的bug 2021-10-22 10:05:24 +08:00
jasder b6a450a482 FIX 项目路由改造的bug 2021-10-22 10:04:39 +08:00
jasder 9f4069fc6a Merge pull request 'Add license 协议' (#207) from master into develop 2021-10-22 09:58:00 +08:00
jasder 257519f98b Merge branch 'master' of https://git.trustie.net/Gitlink/forgeplus-react 2021-10-22 09:56:37 +08:00
jasder 0c180ace32 ADD MulanPSL-2.0 LICENSE 2021-10-22 09:55:53 +08:00
jasder b703c27d44 Merge pull request '并入master分支' (#205) from develop into master 2021-10-22 09:47:53 +08:00
jasder fe2318021e Merge pull request '合并最新功能代码' (#206) from jasder/forgeplus-react:master into master 2021-10-22 09:47:39 +08:00
jasder 8f9e9b0152 解决代码冲突 2021-10-22 09:41:50 +08:00
jasder cde55c1b3c Merge pull request 'WIP' (#204) from jasder/forgeplus-react:develop into develop 2021-10-21 18:38:47 +08:00
jasder 0f0130742e FIX 解决文件冲突 2021-10-21 18:35:47 +08:00
jasder 66c495d6b5 Merge pull request '合并代码后,变量重复引发错误' (#203) from caishi/forgeplus-react:standalone into standalone 2021-10-21 18:32:37 +08:00
caishi 42139ef998 settings多次声明 2021-10-21 18:30:28 +08:00
jasder 925d5ea356 Merge pull request '并入独立版本' (#202) from jasder/forgeplus-react:standalone into standalone 2021-10-21 18:28:15 +08:00
jasder ad1f0e29e7 FIX 合并主干分支代码并解决冲突 2021-10-21 18:24:06 +08:00
jasder 12f97cce62 Merge pull request '添加一些功能和修复相关问题' (#196) from pre_develop_dev into pre_develop 2021-10-21 14:51:56 +08:00
jasder 2f90ccab3c Merge pull request '通知管理' (#195) from durian/forgeplus-react:feature_notification_v2_noticeSettings into pre_develop_dev 2021-10-21 14:19:51 +08:00
谢思 3498390974 at 2021-10-21 14:12:15 +08:00
谢思 035296732a Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2_noticeSettings 2021-10-21 11:04:36 +08:00
谢思 cc62bde5b4 修改提交列表页 提交信息多行样式问题 2021-10-21 11:02:15 +08:00
谢思 4f3e385f78 at谁列表(缺弹框的上下,enter键监听) 2021-10-21 10:51:40 +08:00
jasder 5ef02c698d Merge pull request 'detail.json接口数据精简,前端做对应的修改' (#194) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-21 10:49:33 +08:00
caishi 13c58faad8 项目详情接口-根据接口使用对应的数据字段 2021-10-21 10:37:10 +08:00
谢思 6435b09982 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2_noticeSettings 2021-10-21 09:42:25 +08:00
谢思 a0081bf3b1 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2_noticeSettings 2021-10-21 09:41:44 +08:00
谢思 18b289b84c @who(缺优化) 2021-10-21 09:41:17 +08:00
jasder a542ed3dcd Merge pull request 'pr新建、编辑、列表等页面,分支过长时需处理' (#193) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-20 16:52:52 +08:00
caishi 057881097d pr 分支长度 2021-10-20 16:26:23 +08:00
caishi d47c725b96 pr分支过长,显示时应固定宽度 2021-10-20 15:25:35 +08:00
jasder be3e2b6936 Merge pull request '通知公告弹框bug以及pr页面下拉弹框的宽度' (#192) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-20 11:19:13 +08:00
caishi 76c2d205eb cookie设置时间 2021-10-20 11:06:49 +08:00
caishi 2c867f9856 cookie设置path 2021-10-20 11:05:38 +08:00
caishi 7b74564ecc Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-20 10:45:56 +08:00
jasder b31503ee0d Merge pull request 'ÅDD compare api on create pr action' (#191) from pre_develop_dev into pre_develop 2021-10-19 11:50:39 +08:00
jasder eadec88e0c Merge pull request '合并请求' (#190) from durian/forgeplus-react:router_v2_issue into pre_develop_dev 2021-10-19 11:46:59 +08:00
谢思 31af77e704 通知管理 2021-10-19 10:45:15 +08:00
谢思 6ff27a559f Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2_noticeSettings 2021-10-19 10:28:34 +08:00
谢思 fe1bacb984 通知管理+删除基本资料页面的consolo语句 2021-10-19 10:26:36 +08:00
谢思 573ec813a6 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into router_v2_issue 2021-10-19 09:10:37 +08:00
谢思 11b92ac52b 通知管理 2021-10-19 09:00:00 +08:00
jasder e992849723 Merge pull request 'FIx 合并测试分支功能代码' (#188) from pre_develop_dev into pre_develop 2021-10-18 18:00:02 +08:00
jasder 0c52ea22a7 Merge pull request 'ADD平台通知公告' (#187) from featrue_system_popup_notification into pre_develop_dev 2021-10-18 17:59:02 +08:00
谢思 b6b19eabe9 仓库不同时调用compare接口 2021-10-18 17:28:40 +08:00
jasder edbd47ea0f Merge pull request '域名更换弹框样式' (#186) from caishi/forgeplus-react:featrue_system_popup_notification into featrue_system_popup_notification 2021-10-18 17:25:35 +08:00
caishi 644e3c3f73 cookie失效时间改为一天 2021-10-18 17:19:20 +08:00
caishi e7a322e038 弹框样式-markdown渲染有影响 2021-10-18 17:13:52 +08:00
谢思 a2c5c1ea6f 通知管理模块 2021-10-18 16:54:16 +08:00
caishi dfa9b3d835 issue 2021-10-18 15:48:31 +08:00
谢思 e3f49db5c0 at谁列表 2021-10-18 14:19:32 +08:00
jasder e744714da0 Merge pull request 'FIX 合并测试分支代码' (#182) from pre_develop_dev into featrue_system_popup_notification 2021-10-18 11:49:55 +08:00
jasder 14df994cd6 Merge pull request 'issue - 易修、合并请求标题长度和显示样式' (#181) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-18 11:46:58 +08:00
caishi e9546951c9 非汉字需要强制换行 2021-10-18 11:30:20 +08:00
caishi 9de7ac7c90 易修、合并请求标题:字符长度、详情的显示、列表的显示长度等 2021-10-18 11:15:38 +08:00
baladiwei 3e3e9f3681 Merge pull request '202110151541 release' (#179) from pre_develop_dev into pre_develop 2021-10-15 16:03:59 +08:00
jasder 4b2651339b Merge pull request '修改新建合并请求页面目标分支存在但显示不存在bug以及提交详情页面的浏览文件按钮上移样式问题' (#177) from durian/forgeplus-react:router_v2_issue into pre_develop_dev 2021-10-15 15:28:11 +08:00
jasder 4b9cc26d9c Merge pull request 'issue上线' (#178) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-15 15:26:44 +08:00
谢思 66108083fd 修改新建合并请求页面目标分支存在但显示不存在bug以及提交详情页面的浏览文件按钮上移样式问题 2021-10-15 15:22:22 +08:00
caishi adfd2ae66c Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-15 15:21:59 +08:00
jasder f78eecd775 Merge pull request 'FIX 合并生产版本分支代码' (#175) from pre_develop into pre_develop_dev 2021-10-15 15:21:48 +08:00
caishi b30f2169e4 数据state 2021-10-15 15:20:21 +08:00
caishi 8ace7da3a7 同上-数据传参 2021-10-15 14:40:40 +08:00
caishi 35110b7db4 动态页面数据传参 2021-10-15 14:15:23 +08:00
谢思 4add266047 at谁列表 2021-10-15 11:36:51 +08:00
caishi 95050bb3bd 非.git结尾的也需要自动填充 2021-10-15 10:54:26 +08:00
jasder f97c90f20e Merge pull request '弹框弹出时间用cookie保存' (#173) from caishi/forgeplus-react:featrue_system_popup_notification into featrue_system_popup_notification 2021-10-15 10:49:17 +08:00
caishi afd2cec4f2 保存cookie时先删除cookie 2021-10-15 10:29:03 +08:00
caishi 0903edfd2c 设置cookie为24小时的限制,超过后重新弹出弹框 2021-10-15 10:27:16 +08:00
谢思 4a6012bfa9 at谁列表 2021-10-14 15:04:17 +08:00
caishi 1aa6c05869 动态比例数据 2021-10-14 14:55:35 +08:00
jasder 94fd500423 Merge pull request '合并请求相关路由改造' (#170) from durian/forgeplus-react:feature_router_v2 into pre_develop 2021-10-14 14:34:56 +08:00
jasder 90cfac4436 Merge pull request '动态配置开启通知模块' (#171) from durian/forgeplus-react:pre_develop_dev into pre_develop 2021-10-14 14:34:50 +08:00
caishi db2c3b707a Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-14 14:28:24 +08:00
caishi bb1175de01 setting修改报错时要隐藏加载效果 2021-10-14 14:28:20 +08:00
jasder c45a6ffe1a Merge pull request '动态页面数据显示、以及样式更改' (#172) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-14 14:06:17 +08:00
caishi c0f2c77e1a Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-14 13:59:08 +08:00
caishi c386bcf5e7 动态也数据显示、样式修改 2021-10-14 13:59:03 +08:00
jasder 0b4baa1d03 Merge pull request '项目复刻按钮显示优化' (#169) from hc1913847458/forgeplus-react:testdev into pre_develop_dev 2021-10-14 10:52:38 +08:00
jasder c0afc7a052 Merge pull request 'markdown编辑器' (#168) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-14 10:46:03 +08:00
hucong 1826c1923f 项目复刻按钮显示优化 2021-10-14 10:45:39 +08:00
caishi 76d8c4b67a Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-14 10:28:46 +08:00
caishi fbbb3c3aa6 markdown文件样式影响内容 2021-10-14 10:28:41 +08:00
jasder 2f06288507 Merge pull request '项目复刻按钮显示优化' (#167) from hc1913847458/forgeplus-react:testdev into pre_develop_dev 2021-10-14 10:23:37 +08:00
hucong 47b6c3d948 save 2021-10-14 10:21:47 +08:00
hucong f6b59e0a3a save 2021-10-14 10:20:36 +08:00
hucong bb6fe08c54 file 2021-10-14 10:00:51 +08:00
jasder a7283b5567 Merge pull request '域名更换增加提示弹框样式' (#165) from caishi/forgeplus-react:featrue_system_popup_notification into featrue_system_popup_notification 2021-10-14 09:49:02 +08:00
hucong 05eb0367ba 项目复刻按钮显示优化 2021-10-14 09:43:00 +08:00
caishi 3ca38e76a1 弹框的样式 2021-10-14 09:38:20 +08:00
hucong 7b180560a6 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev 2021-10-14 09:38:00 +08:00
hucong 17cf0412cd Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev
# Conflicts:
#	src/forge/Main/tag/Index.jsx
2021-10-14 09:37:34 +08:00
jasder f65781b49b Merge pull request '仓库设置-增加仓库标识的修改' (#164) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-14 09:37:33 +08:00
谢思 7fe88aa4d9 at列表 2021-10-14 09:11:37 +08:00
jasder 82d8a0d198 Merge pull request '域名更换增加提示弹框' (#163) from caishi/forgeplus-react:featrue_system_popup_notification into featrue_system_popup_notification 2021-10-13 18:05:26 +08:00
caishi 0d7805fc9d Merge branch 'featrue_system_popup_notification' of https://git.trustie.net/Gitlink/forgeplus-react into featrue_system_popup_notification 2021-10-13 18:03:24 +08:00
jasder 68b34ab418 Merge pull request 'fix wip' (#162) from pre_develop into featrue_system_popup_notification 2021-10-13 18:02:49 +08:00
caishi 5223a84dac 域名更换通知 2021-10-13 17:58:45 +08:00
jasder 4afb131aef Merge pull request '未登录状态进入消息页面跳转首页' (#160) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-13 17:22:35 +08:00
谢思 5d19f6c06b 未登录状态进入消息页面跳转首页 2021-10-13 17:17:51 +08:00
baladiwei a4902739f2 Merge pull request 'pr路由改造bugfix' (#159) from yuzhantian/forgeplus-react:feature_pull_routers into feature_router_v2 2021-10-13 17:01:18 +08:00
yuzhantian bfcf714822 Merge branch 'feature_router_v2' of https://git.trustie.net/Gitlink/forgeplus-react into feature_pull_routers 2021-10-13 16:56:01 +08:00
巴拉迪维 fc305ae952 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router_v2 2021-10-13 16:52:58 +08:00
baladiwei 095e27fcc3 Merge pull request '处理未登录状态下地址栏输入跳转消息页面情况' (#157) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-13 16:49:24 +08:00
谢思 5c819070bb 处理未登录状态下地址栏输入跳转消息页面情况 2021-10-13 16:45:21 +08:00
yuzhantian 8e3bd741cb fix: pr路由bugfix 2021-10-13 16:38:43 +08:00
谢思 bc6ef583fb atwho 2021-10-13 16:01:38 +08:00
jasder baba177244 Merge pull request '未登录状态隐藏消息铃铛' (#156) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-13 15:24:47 +08:00
谢思 38c553d87c 未登录状态隐藏消息铃铛 2021-10-13 15:14:47 +08:00
谢思 b268b540d8 @我列表 2021-10-13 14:53:13 +08:00
baladiwei de79518e0d Merge pull request '动态配置是否开启通知模块' (#155) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-13 13:46:21 +08:00
谢思 a7c2120cf3 动态配置通知模块 2021-10-13 13:37:51 +08:00
谢思 8dcc6c6d59 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-13 11:54:12 +08:00
谢思 7e69c64c9c @who列表 2021-10-13 11:52:54 +08:00
谢思 85ef26f70e @who 2021-10-13 10:07:38 +08:00
caishi fe4c5a79d2 仓库设置-可修改项目标识 2021-10-13 09:57:04 +08:00
谢思 8c7865d2c1 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification_v2 2021-10-13 09:54:04 +08:00
yuzhantian fd21cc6d00 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_pull_routers 2021-10-13 09:11:18 +08:00
jasder 2fc59748b4 Merge pull request 'FIx css bug' (#153) from pre_develop_dev into pre_develop 2021-10-12 18:23:27 +08:00
jasder 2060e28ca2 Merge pull request '标签列表数据少时内容居中了' (#152) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 18:08:23 +08:00
caishi 94ceec26e9 标签列表内容 2021-10-12 18:03:25 +08:00
jasder e5787e3e66 Merge pull request 'FIX WIP' (#151) from pre_develop_dev into pre_develop 2021-10-12 17:34:37 +08:00
jasder 8ae34b8f32 Merge pull request '代码库一级页面样式' (#150) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 17:33:46 +08:00
caishi 6244ad3323 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-12 17:32:13 +08:00
caishi 1fbe6671b1 代码库一级页面样式 2021-10-12 17:32:09 +08:00
hucong cda7311fa1 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev 2021-10-12 17:19:11 +08:00
jasder 4c25aed9a0 Merge pull request '贡献者样式修改+细节样式+仓库设置项目标识(接口还在测试,暂时隐藏)' (#149) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 17:18:50 +08:00
caishi b578383e8d 设置项目标识暂时隐藏 2021-10-12 17:15:16 +08:00
jasder d05829ac80 Merge pull request 'FIX some bug' (#148) from pre_develop_dev into pre_develop 2021-10-12 17:14:13 +08:00
hucong e726ba40ea Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev 2021-10-12 16:43:06 +08:00
baladiwei 279d358be9 Merge pull request '合并请求路由改造' (#147) from yuzhantian/forgeplus-react:feature_pull_routers into feature_router_v2 2021-10-12 16:39:12 +08:00
yuzhantian 50f785bf42 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_pull_routers 2021-10-12 16:12:38 +08:00
yuzhantian a09d330a7e refactor: 新建合并请求路由改造 2021-10-12 16:12:16 +08:00
谢思 9812761b47 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-12 16:09:55 +08:00
jasder c037712b3e Merge pull request '代码库二级页面改版' (#146) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 15:20:05 +08:00
谢思 19b7381120 issue 2021-10-12 15:14:49 +08:00
谢思 999a15761d md@谁列表 2021-10-12 14:24:18 +08:00
jasder a54f1b6e1a Merge pull request 'FIX 完善代码库二级页面存在的相关问题' (#144) from pre_develop_dev into pre_develop 2021-10-12 13:52:50 +08:00
hucong 8b186467a4 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev 2021-10-12 13:38:26 +08:00
jasder 4902a26646 Merge pull request '标签列表显示头像、样式修改' (#143) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 12:04:39 +08:00
caishi c282a1e034 标签列表头像 2021-10-12 11:57:27 +08:00
hucong 112aacb6a1 代码库二级页面标签加载优化 2021-10-12 11:49:04 +08:00
jasder 0a81bc6e6e Merge pull request 'issue标签页样式修改' (#142) from hc1913847458/forgeplus-react:testdev into pre_develop_dev 2021-10-12 11:06:15 +08:00
hucong 1406b30a54 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev 2021-10-12 11:03:22 +08:00
hucong fd58c70c54 issue标签页样式 2021-10-12 11:03:03 +08:00
jasder 8cb0e32afa Merge pull request '标签无数据提示问题' (#141) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 10:55:47 +08:00
caishi 6837be3104 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-12 10:52:58 +08:00
hucong 539fa64358 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into testdev 2021-10-12 10:46:04 +08:00
hucong 63a74cc076 代码库二级页面标签页优化 2021-10-12 10:45:54 +08:00
hucong 1c5b5a66d8 代码库二级页面标签页优化 2021-10-12 10:32:09 +08:00
jasder 898e3f3256 Merge pull request '提交详情Tooltip渲染出false' (#138) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 10:29:26 +08:00
谢思 bcbd915bd1 提交详情Tooltip渲染出false 2021-10-12 10:24:58 +08:00
jasder 1ed49e7221 Merge pull request '代码库一级页面提交信息css样式问题' (#137) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-12 10:00:29 +08:00
谢思 5bbec01c1c Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-12 09:58:32 +08:00
谢思 8bdd619dde 代码库一级页面提交信息css样式问题 2021-10-12 09:56:09 +08:00
caishi 82f6e03ca7 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-12 09:42:58 +08:00
baladiwei e04496f662 Merge pull request '代码库一级页面提交描述信息md渲染' (#136) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-11 21:37:21 +08:00
谢思 ed548d16e8 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-11 21:21:57 +08:00
谢思 66c5662d01 代码库一级页面提交描述信息md渲染 2021-10-11 21:20:08 +08:00
caishi 9e390cf878 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-11 20:03:22 +08:00
caishi cd30082956 styel 2021-10-11 20:03:03 +08:00
jasder 7a8540045b Merge pull request 'issue-标签列表数据提示' (#135) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-11 19:47:06 +08:00
jasder 8a6ed077d1 Merge pull request '提交列表页提交信息md渲染' (#134) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-11 19:46:16 +08:00
caishi 9600d52a80 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-11 19:45:16 +08:00
caishi 07049cbbc6 标签无数据提示 2021-10-11 19:44:48 +08:00
谢思 208c1de930 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-11 19:43:56 +08:00
谢思 873ab992bc 提交列表页提交信息md渲染 2021-10-11 19:39:01 +08:00
jasder 4e3215c6f9 Merge pull request '细节问题以及去掉不必要的接口' (#133) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-11 18:38:39 +08:00
caishi b0d1379281 去掉二级页面改版后不需要的接口top_count.json 2021-10-11 18:35:50 +08:00
caishi 7a50c73040 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-11 18:12:00 +08:00
jasder 92fb98e303 Merge pull request '1.标签加载方式优化 2.预览md文件定位' (#132) from hc1913847458/forgeplus-react:testdev into pre_develop_dev 2021-10-11 18:11:19 +08:00
hucong 8e1fb80f96 代码库二级页面md文件定位处理 2021-10-11 18:07:55 +08:00
hucong 825cee4eac 代码库二级页面md文件定位处理 2021-10-11 18:07:48 +08:00
hucong dcb597ea37 代码库二级页面标签加载优化 2021-10-11 17:53:30 +08:00
jasder dc6bad6b3e Merge pull request '代码库二级页面改版-修改issue' (#131) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-11 17:45:20 +08:00
谢思 756e3f0416 提交详情页面-提交md渲染 2021-10-11 17:41:58 +08:00
caishi 7130a05b23 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-11 17:24:33 +08:00
caishi 08b5f7edc0 开发语言左侧圆点位置 2021-10-11 17:24:28 +08:00
jasder 26d1b2edc8 Merge pull request '代码库二级页面标签列表样式更改' (#130) from hc1913847458/forgeplus-react:testdev into pre_develop_dev 2021-10-11 17:16:22 +08:00
hucong f6c5fd7550 代码库二级页面标签样式优化 2021-10-11 16:58:34 +08:00
jasder 860f52e7e1 Merge pull request '代码库二级页面改版-修改issue' (#129) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-11 16:45:28 +08:00
谢思 1b9602df77 issue 2021-10-11 16:39:40 +08:00
谢思 5c2330512e @我:在markdown编辑器中输入@我弹出列表需要引入的js 2021-10-11 13:48:50 +08:00
jasder 1684e5c04f Merge pull request '提交详情页体验优化' (#128) from durian/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-11 11:36:37 +08:00
谢思 d7ab95eccc 提交详情页体验优化 2021-10-11 11:28:41 +08:00
yuzhantian 5a88a1a4e6 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_pull_routers 2021-10-11 09:01:02 +08:00
jasder a489271a2f Merge pull request 'FIX bug' (#126) from pre_develop_dev into pre_develop 2021-10-09 18:17:04 +08:00
jasder c73b1c9e29 Merge pull request '合并请求页面查看文件样式' (#125) from durian/forgeplus-react:feature_repo_second_page_xiesi1 into pre_develop_dev 2021-10-09 18:03:54 +08:00
谢思 9be6116cb8 合并请求页面查看文件样式 2021-10-09 18:01:06 +08:00
jasder 170977432e Merge pull request '提交详情页面-浏览文件和查看文件的跳转' (#124) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-09 17:40:25 +08:00
caishi bc158891e7 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-10-09 17:33:17 +08:00
caishi 68caf0751e 提交详情-按钮跳转 2021-10-09 17:33:10 +08:00
yuzhantian 8a8f8693fe Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_pull_routers 2021-10-09 16:43:39 +08:00
yuzhantian da7ff8c749 refactor: 合并请求路由改造以及评论数量bug修复 2021-10-09 16:39:47 +08:00
jasder aa0280d57a Merge pull request 'FIX 代码库二级页面' (#123) from pre_develop_dev into pre_develop 2021-10-09 16:16:53 +08:00
jasder 9b4f1b7cd9 Merge pull request '代码合并后修改的问题' (#122) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-10-09 15:56:13 +08:00
caishi 6f57261c85 分支下拉+标签提交id数据 2021-10-09 15:51:02 +08:00
caishi c2f0462811 新建分支后,下拉选项未及时更新 2021-10-09 15:16:13 +08:00
caishi 078a453dcf 复制issue-不调用copy接口,直接跳编辑页,最后调新建接口 2021-10-09 14:56:07 +08:00
jasder 3be536d37a Merge pull request 'FIX 代码库二级页面升级改版' (#121) from feature_repo_second_page into pre_develop_dev 2021-10-09 14:37:14 +08:00
jasder 256ab53e90 Merge pull request '代码库文件详情' (#120) from caishi/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-10-09 13:58:44 +08:00
caishi bdf6c7afe4 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-10-09 13:38:10 +08:00
caishi e9619542ea md增加目录跳转 2021-10-09 13:37:56 +08:00
jasder e7b977cc6b Merge pull request 'issue上线' (#119) from caishi/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-10-08 18:46:22 +08:00
caishi f0778614ba Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-10-08 18:33:24 +08:00
caishi 4a5d4ea288 新建文件border和编辑器的高度 2021-10-08 18:33:12 +08:00
jasder 843b8f2894 Merge pull request '代码库二级页面改版' (#118) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-10-08 18:17:42 +08:00
谢思 5195f22f00 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page_xiesi 2021-10-08 18:13:54 +08:00
谢思 5c529e6521 语义化版本-本页面跳转改为打开新网页 2021-10-08 18:06:37 +08:00
caishi 202cec92e9 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-10-08 17:32:33 +08:00
jasder 58287f488f Merge pull request '代码库二级页面issue滚动条更改' (#115) from hc1913847458/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-10-08 17:17:38 +08:00
hucong fb05890701 代码库二级issue滚动条 2021-10-08 16:42:16 +08:00
hucong f989e62702 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-10-08 15:42:17 +08:00
caishi 15b02d9d08 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-10-08 15:41:45 +08:00
caishi bba4745381 分支-头像姓名移入效果 2021-10-08 15:41:28 +08:00
jasder 2b5443d74c Merge pull request '代码库二级页面改版' (#114) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-10-08 14:52:32 +08:00
谢思 0ad1af9f51 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page_xiesi 2021-10-08 14:47:37 +08:00
谢思 633a540fe7 删除consolo语句 2021-10-08 14:46:39 +08:00
谢思 e0c8552c1e issue 2021-10-08 14:41:02 +08:00
jasder 63dc5b5572 Merge pull request 'issue修改' (#113) from caishi/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-10-08 14:27:40 +08:00
jasder aaea118d65 Merge pull request '代码库二级页面issue滚动条更改' (#112) from hc1913847458/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-10-08 14:26:49 +08:00
hucong 5dedc2d6bc issue高度更改 2021-10-08 14:18:14 +08:00
caishi b226495277 issue修改 2021-10-08 14:14:39 +08:00
hucong 299c0d4abe 代码库二级页面滚动条issue 2021-10-08 14:02:38 +08:00
hucong 1a393d8e9f Revert "代码库二级issue滚动条"
This reverts commit 1ee20877ec.
2021-10-08 14:00:34 +08:00
hucong 1ee20877ec 代码库二级issue滚动条 2021-10-08 13:55:10 +08:00
caishi 766c6ea68b Merge branch 'feature_repo_second_page' of https://git.trustie.net/caishi/forgeplus-react; branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-10-08 10:11:57 +08:00
caishi 7b4e7d3542 issue 2021-10-08 10:11:35 +08:00
jasder 0080a07734 Merge pull request '提交详情页面-分支信由传参修改为接口参数' (#110) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-30 22:01:22 +08:00
谢思 a91fb41ef0 提交详情页面-分支信由传参修改为接口参数 2021-09-30 21:58:26 +08:00
jasder a400046c91 Merge pull request 'fix issue' (#109) from caishi/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-30 21:25:21 +08:00
caishi 437253e2eb 头像跳转,没有id不能跳转 2021-09-30 21:04:01 +08:00
caishi a76ca41446 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-09-30 20:58:40 +08:00
caishi 676914cc9d editor height 2021-09-30 20:58:28 +08:00
jasder 9ce86f4102 Merge pull request 'issue任务上线' (#108) from caishi/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-30 20:44:31 +08:00
caishi a6675d6c3f Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-09-30 20:42:16 +08:00
caishi dfd7d9f03f nav style 2021-09-30 20:40:33 +08:00
jasder 464b9a2be2 Merge pull request '发行版' (#107) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-30 20:33:26 +08:00
谢思 30acf6ed34 代码库二级页面发行版标签跳转链接错误,代码库页面发行版及时刷新 2021-09-30 20:30:15 +08:00
caishi 68a5ca9380 readme 2021-09-30 20:08:06 +08:00
baladiwei 4c0f059ae5 Merge pull request '代码库二级页面issue滚动条更改' (#106) from hc1913847458/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-30 20:01:45 +08:00
caishi 0fea52b923 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page 2021-09-30 19:58:12 +08:00
caishi 5b2198ce4c fix issue 2021-09-30 19:58:03 +08:00
baladiwei 29ced2aded Merge pull request '代码库页面创建发行版权限控制' (#105) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-30 19:52:35 +08:00
hucong 7a06e21933 代码库二级issue滚动条 2021-09-30 19:47:40 +08:00
谢思 3d3c0b5095 代码库页面创建发行版权限控制 2021-09-30 19:42:34 +08:00
jasder 6d1b410ba1 Merge pull request '发行版' (#102) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-30 17:46:27 +08:00
谢思 71670f1214 用户跳转参数 2021-09-30 17:41:50 +08:00
谢思 b7fe034faf 发行版增删改权限 2021-09-30 17:33:40 +08:00
jasder 030c6ad61f Merge pull request '代码库二级页面issue中readme更改' (#99) from hc1913847458/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-30 17:16:30 +08:00
hucong 0b3444b37e 代码库二级页面readme的更改 2021-09-30 16:59:58 +08:00
jasder 4db06a9fd7 Merge pull request 'issue代码提交' (#98) from caishi/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-30 16:55:59 +08:00
caishi 1a5f81887a issue 2021-09-30 16:51:53 +08:00
caishi d51bea4928 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page
# Conflicts:
#	src/forge/Main/tag/Index.jsx
2021-09-30 16:00:29 +08:00
caishi 11053da351 style 2021-09-30 15:59:54 +08:00
jasder 0629d87a9f Merge pull request '代码库二级页面issue更改' (#96) from hc1913847458/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-30 15:55:06 +08:00
jasder 4ad7042a93 Merge pull request '代码库二级页面改版-修改issue' (#97) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-30 15:51:32 +08:00
谢思 c42d249fd9 代码库二级页面改版issue 2021-09-30 15:45:14 +08:00
caishi 3da9306ed6 style 2021-09-30 15:42:37 +08:00
hucong 08047fb002 代码库二级页面issue更改 2021-09-30 13:43:45 +08:00
jasder 20c0f76043 Merge pull request '代码库二级页面改版-修改issue' (#94) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-30 09:49:15 +08:00
谢思 5726969431 解决代码冲突 2021-09-30 09:30:28 +08:00
谢思 9ebdbec859 去掉consolo语句 2021-09-30 08:52:53 +08:00
谢思 1750544c0d pull upstream pre_develop_dev 2021-09-29 21:06:25 +08:00
谢思 30512cb4f4 修改代码库二级改版issue 2021-09-29 21:04:40 +08:00
caishi 568a632d65 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage
# Conflicts:
#	src/forge/Head/header.scss
2021-09-29 19:34:03 +08:00
caishi 5982c0df96 首页需求更改 2021-09-29 19:31:55 +08:00
jasder 9be808e37f Merge pull request '本周issue任务上线(除gitlink首页外)' (#91) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-09-29 17:31:57 +08:00
caishi 27f62f4455 复制issue、组织的显示名称等 2021-09-29 17:25:36 +08:00
baladiwei f34b8f8756 Merge pull request '增加PRloading状态' (#89) from tongChong/forgeplus-react:hotfix-issue into pre_develop_dev 2021-09-29 09:21:19 +08:00
jasder f23d00167e Merge pull request 'fix pre_develp' (#88) from pre_develop_dev into pre_develop 2021-09-29 09:11:07 +08:00
何童崇 dd62dd1704 增加PRloading状态 2021-09-29 09:03:40 +08:00
jasder 21046bbcb7 Merge pull request 'gitlink首页需求更新' (#86) from caishi/forgeplus-react:feature_homepage into feature_homepage 2021-09-29 08:24:44 +08:00
谢思 68b1e0c704 提交页面的复制commitId功能 2021-09-28 22:39:47 +08:00
jasder 79f486dcd2 Merge pull request '提交列表页提交id悬停样式优化' (#87) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-28 18:53:15 +08:00
谢思 fc26e362d0 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page_xiesi 2021-09-28 18:37:23 +08:00
谢思 79afad5006 修改提交列表页复制id左侧悬停样式 2021-09-28 17:30:11 +08:00
jasder e2b2836a87 Merge pull request '代码库二级页面改版-提交,发行版' (#85) from tongChong/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-28 16:14:25 +08:00
caishi 0c816805fb gitlink 首页:合作单位的image以及需求更新 2021-09-28 16:08:25 +08:00
jasder 9e322cff79 Merge pull request '代码库二级页面子目录更改,代码库二级页面子目录文件更改' (#83) from hc1913847458/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-28 16:07:57 +08:00
jasder 8818bafad2 Merge pull request '新增通知系统' (#84) from tongChong/forgeplus-react:feature_notification into pre_develop_dev 2021-09-28 16:01:51 +08:00
durian 28bc235b0b Merge pull request '代码库二级页面改版-测试-提交,发行版' (#36) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-28 15:53:02 +08:00
谢思 50627aba6b 代码库二级页面改版-测试-提交,发行版 2021-09-28 15:50:20 +08:00
hucong 89bfb3a986 fix 代码二级页面issue修改 2021-09-28 14:25:03 +08:00
baladiwei a64887d420 Merge pull request '代码库二级页面改版-发行版' (#82) from tongChong/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-28 10:08:26 +08:00
durian cd3a82195b Merge pull request '代码库二级页面改版-发行版' (#34) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-28 09:32:11 +08:00
谢思 7d3c6bd4f5 代码库二级页面改版-发行版 2021-09-28 09:29:33 +08:00
谢思 aaf6bcb320 发行版 2021-09-28 08:56:16 +08:00
谢思 73ca563a0f 提交 2021-09-27 15:43:48 +08:00
durian 724c110437 Merge pull request '我的通知' (#33) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-27 14:57:28 +08:00
谢思 ca7ab2ebe0 更正 2021-09-27 14:54:33 +08:00
durian e0a5e4348e Merge pull request '我的通知' (#32) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-27 14:01:12 +08:00
谢思 e5bb8d10b2 我的通知优化-用户未登录 2021-09-27 13:56:32 +08:00
谢思 3b3cc7f639 提交 2021-09-27 13:43:47 +08:00
谢思 44d529e867 提交 2021-09-27 13:09:59 +08:00
谢思 55f3bc6201 提交 2021-09-27 12:00:03 +08:00
谢思 26de781181 我的通知tab栏跳转优化 2021-09-27 11:32:05 +08:00
谢思 295d0dbe5c 提交 2021-09-27 11:11:32 +08:00
谢思 1402029bfe 提交优化-发行版改版 2021-09-27 10:08:52 +08:00
谢思 5d83c85b2d 提交页面优化-未完 2021-09-26 11:36:30 +08:00
caishi 28f8b6b54c Merge branch 'feature_homepage' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage 2021-09-24 18:19:27 +08:00
caishi 7d087ec1f2 gitlink首页-第一版 2021-09-24 18:18:55 +08:00
jasder beba8975ca Merge pull request 'fix merge pro develop dev' (#73) from pre_develop_dev into feature_homepage 2021-09-24 18:18:42 +08:00
谢思 d91d4e5ef8 Merge branch 'feature_repo_second_page' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_second_page_xiesi 2021-09-24 15:35:46 +08:00
谢思 c70c3f9a7a 提交详情页面-文件下拉框鼠标移入改点击 2021-09-24 15:12:14 +08:00
baladiwei f208972bb8 Merge pull request '代码库二级页面改版-提交' (#72) from tongChong/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-24 15:08:04 +08:00
durian 2777ebcda2 Merge pull request '代码库二级页面改版-提交' (#29) from durian/forgeplus-react:feature_repo_second_page_xiesi into feature_repo_second_page 2021-09-24 14:35:39 +08:00
谢思 a80a20ef6e 提交页面改版优化 2021-09-24 14:29:57 +08:00
谢思 ab351fd8f8 提交详情页面改版 2021-09-24 11:27:32 +08:00
谢思 3a816ce5e5 Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification_xiesi 2021-09-23 08:59:32 +08:00
谢思 abc04a28a7 提交页面 2021-09-23 08:54:39 +08:00
谢思 9d6235b08c 代码库二级页面 2021-09-22 15:28:07 +08:00
谢思 4079765edb 我的通知 2021-09-22 12:59:51 +08:00
durian 76ffd0e8b9 Merge pull request '我的通知-消息悬停框' (#27) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-22 10:22:54 +08:00
谢思 975dfad4aa 消息悬停框 2021-09-22 10:14:22 +08:00
jasder 465ae57b07 Merge pull request '代码库二级页面改版(部分)' (#71) from caishi/forgeplus-react:feature_repo_second_page into feature_repo_second_page 2021-09-22 09:35:04 +08:00
caishi d4690cc8b5 拉取测试版分支代码,且更新gitlink首页 2021-09-22 09:23:20 +08:00
谢思 e1372fdd02 个人设置页面左侧导航栏鼠标悬停样式 2021-09-18 09:00:11 +08:00
何童崇 628606480a 修改小铃铛bug 2021-09-17 14:59:26 +08:00
tongChong cd949d4f2a Merge pull request '我的通知' (#26) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-17 14:14:55 +08:00
谢思 78014b02bf 通知中心 2021-09-17 14:11:31 +08:00
何童崇 a299b9a841 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification 2021-09-17 11:33:53 +08:00
caishi 38021c2e4b Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage 2021-09-17 09:50:03 +08:00
yystopf bcde15cec1 需求更改
同步镜像调用websockt,成功后刷新页面;
合并请求可选标签,仓库设置类别、语言可选
2021-09-17 09:43:31 +08:00
caishi 23b423a32d 同步镜像点击事件,设置和合并请求编辑的可选项 2021-09-17 09:34:24 +08:00
caishi 4233811ae3 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage 2021-09-16 17:26:00 +08:00
tongChong 993b1bde40 Merge pull request '我的通知' (#24) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-16 17:20:00 +08:00
谢思 d45e87d46f Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification_xiesi 2021-09-16 17:17:40 +08:00
谢思 cdc2ca755e 通知中心优化 2021-09-16 17:16:23 +08:00
何童崇 d7242f0fa1 上传合并蔡世修改 2021-09-16 17:09:15 +08:00
yystopf a1c8440fe2 将平台标签改为标记 2021-09-16 16:37:48 +08:00
caishi 6cfb56e6ca update 标签 to 标记 2021-09-16 16:26:51 +08:00
caishi 8273acd195 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_homepage 2021-09-16 15:57:24 +08:00
caishi a5c3cd168e 同上-影响后端接口,暂不上线 2021-09-16 15:48:43 +08:00
何童崇 44dc10ff8c Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification 2021-09-16 13:11:24 +08:00
tongChong 0d9d9887f4 Merge pull request '我的通知' (#23) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-16 13:09:00 +08:00
谢思 def926bff0 通知中心优化 2021-09-16 11:49:31 +08:00
谢思 94a7cf1e6c 通知中心优化 2021-09-16 11:46:29 +08:00
caishi 09a75bc77c Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-09-16 11:10:21 +08:00
caishi 25186132f2 markdown @+字母,会有跳转链接,去掉 2021-09-16 11:10:11 +08:00
何童崇 7e683ac6bb Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification 2021-09-16 10:38:52 +08:00
tongChong 7cf0ae4e67 Merge pull request '我的通知' (#22) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-16 10:38:10 +08:00
谢思 0462b28abf 通知中心优化 2021-09-16 10:35:14 +08:00
何童崇 ff1ffc120f Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification 2021-09-16 10:28:54 +08:00
yystopf 7158eca4f6 issue任务:文案、跳转、样式细节修改 2021-09-16 10:12:41 +08:00
caishi 917374ba11 update 标签 to 标记 2021-09-16 10:03:39 +08:00
caishi f6ec470070 issue-文案、细节修改 2021-09-16 09:47:26 +08:00
caishi 0b2a5a910b 修改代码库二级页面(一部分) 2021-09-16 09:19:25 +08:00
tongChong 23ccaadba2 Merge pull request '我的通知' (#21) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-15 16:54:15 +08:00
谢思 4bb1b8d538 我的通知 2021-09-15 16:52:34 +08:00
何童崇 06314a51a6 修改小铃铛 2021-09-15 16:32:32 +08:00
何童崇 49fad4b8bc Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification 2021-09-15 16:10:12 +08:00
tongChong 4e8657357f Merge pull request '我的通知' (#20) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-15 16:10:04 +08:00
谢思 dcbba90c18 我的通知 2021-09-15 16:07:53 +08:00
谢思 ec65ac3cef 我的通知 2021-09-15 16:05:24 +08:00
谢思 49c66c73a7 我的通知 2021-09-15 15:36:38 +08:00
谢思 6ca0e48697 我的通知 2021-09-15 15:36:16 +08:00
何童崇 52c5187d0e Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification 2021-09-15 14:51:32 +08:00
tongChong 6430ed76a6 Merge pull request '消息铃铛' (#19) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-15 14:49:48 +08:00
谢思 c1ea865f1e 我的通知 2021-09-15 14:47:36 +08:00
tongChong 480fcc1f8e Merge pull request '我的通知' (#18) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-15 14:44:59 +08:00
谢思 ee6a40a5d9 我的通知 2021-09-15 14:41:59 +08:00
谢思 aaa58e532b 我的通知 2021-09-15 14:23:42 +08:00
何童崇 ebf927dc46 Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification 2021-09-15 13:17:54 +08:00
tongChong 9b6ad6340f Merge pull request '我的通知' (#17) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-15 13:16:35 +08:00
谢思 f6a98e4169 我的通知 2021-09-15 13:09:52 +08:00
谢思 9050c5ca2b Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification_xiesi 2021-09-14 16:40:13 +08:00
何童崇 71438d1030 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_notification 2021-09-14 16:34:47 +08:00
何童崇 0e31deb88c 上传通知修改 2021-09-14 16:33:08 +08:00
谢思 d55242f7e8 Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification_xiesi 2021-09-14 16:21:24 +08:00
tongChong 9852bb14c3 Merge pull request '我的通知' (#14) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-14 16:20:59 +08:00
谢思 c0a4432c18 Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification_xiesi 2021-09-14 16:19:41 +08:00
谢思 9ea8ec422d 我的通知 2021-09-14 16:18:31 +08:00
谢思 7fbd76630c 我的通知 2021-09-14 16:02:22 +08:00
何童崇 bc11ac3d79 修改小铃铛及浮动框相关代码 2021-09-14 14:56:21 +08:00
谢思 c5bb61cb9a 通知中心 2021-09-14 09:45:53 +08:00
谢思 f30903072e 通知中心 2021-09-13 14:25:52 +08:00
谢思 dabe7d6551 通知中心 2021-09-13 13:21:34 +08:00
caishi 5c81abb253 merge 2021-09-13 09:57:16 +08:00
tongChong 3598225cac Merge pull request '通知中心静态页面0910' (#12) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-12 15:29:31 +08:00
谢思 1b21d9e3fb 通知中心 2021-09-12 14:47:49 +08:00
jasder 875d715e58 Merge pull request 'FIX 创建项目流程优化' (#64) from pre_develop_dev into pre_develop 2021-09-10 18:51:49 +08:00
jasder 4eae7e68b8 Merge pull request 'FIX 代码库一级页面改版' (#63) from feature_repo_upgrade into pre_develop_dev 2021-09-10 18:25:36 +08:00
jasder 3f33e03549 Merge pull request '新建页面-用户密码不自动填充' (#62) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-09-10 18:24:46 +08:00
jasder c3546a66cd Merge pull request '和测试版同步,以及一些样式细节问题' (#61) from caishi/forgeplus-react:feature_repo_upgrade into feature_repo_upgrade 2021-09-10 18:24:25 +08:00
谢思 4795de938e 通知中心静态页面0910 2021-09-10 18:23:28 +08:00
caishi 8c0757c942 加粗 2021-09-10 18:20:33 +08:00
caishi 41af42ce6f Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev 2021-09-10 18:13:49 +08:00
caishi 0ffa5e0cae 新建页面-用户密码不自动填充 2021-09-10 18:13:45 +08:00
caishi 747ae8ccd5 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_upgrade 2021-09-10 15:13:24 +08:00
jasder 6eb9108aa7 Merge pull request '修改相关页面的issue' (#60) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-09-10 15:13:08 +08:00
caishi 828de5d770 项目列表省略效果没有生效 2021-09-10 15:10:39 +08:00
caishi 007feded68 新建项目相关bug 2021-09-10 15:02:19 +08:00
jasder 5f90b85c1d Merge pull request '代码库一级页面样式修改' (#59) from caishi/forgeplus-react:feature_repo_upgrade into feature_repo_upgrade 2021-09-10 14:09:19 +08:00
caishi f1a4f7c68f Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_upgrade 2021-09-10 11:53:15 +08:00
jasder 98ca09e64b Merge pull request 'issue-组织列表显示的名称' (#58) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-09-10 11:51:51 +08:00
caishi 3e9c9ea6d1 个人中心-组织列表-显示组织的名称nickname 2021-09-10 11:50:30 +08:00
caishi 3a16c4be8a delete .map文件、update style 2021-09-10 11:47:48 +08:00
caishi 81623b38f7 style 2021-09-10 09:50:29 +08:00
caishi 06f3eacb9d style 2021-09-09 17:50:46 +08:00
caishi 93736781c5 Merge branch 'feature_repo_upgrade' of https://git.trustie.net/caishi/forgeplus-react into feature_repo_upgrade 2021-09-09 16:59:12 +08:00
hc1913847458 5bfb6ee4c1 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into feature_repo_upgrade 2021-09-09 16:55:28 +08:00
jasder baf9a3f4a8 Merge pull request 'issue上线' (#57) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-09-09 16:55:02 +08:00
caishi eb89f6a6a7 新建按钮字的内容修改 2021-09-09 16:49:09 +08:00
caishi a24132412e 新建项目页面排版调整 2021-09-09 16:35:02 +08:00
caishi d558443c22 style 2021-09-09 16:09:16 +08:00
tongChong 495e11fb4c Merge pull request '通知中心' (#11) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-09 14:36:52 +08:00
谢思 c477fbe89a 通知中心新增的三个页面 2021-09-09 14:31:31 +08:00
谢思 e07e435557 通知中心静态页面 2021-09-09 14:25:04 +08:00
caishi a4475e995b 同上,文案已改,项目新建页面前端修改,wait后端 2021-09-09 14:11:02 +08:00
caishi e0aeab0e20 项目列表tip文案-待定 2021-09-09 10:10:19 +08:00
谢思 8e17efb9c6 通知中心静态页面 2021-09-09 09:34:51 +08:00
hc1913847458 ef7cc1ebd6 Merge branch 'feature_repo_upgrade' of https://git.trustie.net/hc1913847458/forgeplus-react into feature_repo_upgrade 2021-09-08 18:09:48 +08:00
hc1913847458 9e1ce515a8 issue 2021-09-08 18:09:26 +08:00
hc1913847458 1e1f2a0e2f Merge branch 'feature_repo_upgrade' of https://git.trustie.net/caishi/forgeplus-react into feature_repo_upgrade 2021-09-08 18:07:03 +08:00
hc1913847458 19afa410b1 issue 2021-09-08 18:04:53 +08:00
hc1913847458 fbb73968c9 Merge branch 'pre_develop_dev' of https://git.trustie.net/caishi/forgeplus-react into feature_repo_upgrade 2021-09-08 18:03:47 +08:00
caishi 0768ab2970 delete 2021-09-08 18:02:29 +08:00
caishi 46e8135585 overflow 2021-09-08 18:00:51 +08:00
hc1913847458 540553199a issue 2021-09-08 17:53:21 +08:00
jasder 1c8ad3dc60 Merge pull request '新建项目页面取消按钮,跳转地址错误' (#56) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-09-08 17:46:54 +08:00
hc1913847458 b3c9eb3c33 issue 2021-09-08 17:42:04 +08:00
caishi 64b1c51fad 新建页面取消按钮,跳转地址错误 2021-09-08 11:33:36 +08:00
何童崇 22b5859b62 上传请求公共处理函数 2021-09-07 17:06:35 +08:00
hc1913847458 e0d1de7a53 issue 2021-09-07 15:10:36 +08:00
jasder fc274f09e9 Merge pull request 'issue任务上线测试版' (#55) from caishi/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-09-07 15:09:28 +08:00
hc1913847458 f8075ccb2f issue 2021-09-07 14:00:04 +08:00
caishi 46c604bf92 markdown图片点击放大 2021-09-07 13:57:28 +08:00
caishi daf81be4f6 Merge branch 'pre_develop_dev' of https://git.trustie.net/Gitlink/forgeplus-react into pre_develop_dev
# Conflicts:
#	src/forge/Main/Detail.js
2021-09-07 13:54:04 +08:00
caishi 030c779103 issue图片放大功能 2021-09-07 13:53:35 +08:00
jasder 3c5c4266cd Merge pull request 'FIX some bug' (#54) from feature_router into pre_develop_dev 2021-09-07 13:53:02 +08:00
hc1913847458 94fbc972be issue 2021-09-07 11:29:09 +08:00
tongChong ca51702799 Merge pull request '我的通知静态页面' (#9) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-07 11:27:11 +08:00
谢思 e721399e17 Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification_xiesi 2021-09-07 11:22:59 +08:00
何童崇 244881f142 上传通知的修改 2021-09-07 11:16:05 +08:00
谢思 b6cf496efa 通知中心-我的通知 2021-09-07 11:14:53 +08:00
何童崇 6665a15aa3 新增函数调用模态框 2021-09-07 10:42:48 +08:00
何童崇 a667f41ec1 下拉主分支代码 2021-09-07 10:33:01 +08:00
hc1913847458 5424973c52 issue 2021-09-07 10:16:34 +08:00
tongChong 258de069e4 Merge pull request '通知中心' (#8) from durian/forgeplus-react:feature_notification_xiesi into feature_notification 2021-09-07 09:41:28 +08:00
谢思 cb58481daf 通知系统 2021-09-07 09:33:46 +08:00
jasder 548cdee35b Merge pull request '代码库一级页面样式修改+8.30至9.03日的更新提交' (#53) from caishi/forgeplus-react:feature_repo_upgrade into feature_repo_upgrade 2021-09-06 18:36:14 +08:00
caishi 488d04284c delete 多余文件 2021-09-06 18:32:51 +08:00
hc1913847458 01f1a5c68c issue 2021-09-06 18:09:09 +08:00
hc1913847458 6f80d439c3 issue 2021-09-06 18:08:50 +08:00
hc1913847458 6696222c02 issue 2021-09-06 18:07:36 +08:00
hc1913847458 4acfb88ee5 issue 2021-09-06 18:07:36 +08:00
hc1913847458 97e6a5d5f2 issue 2021-09-06 18:07:13 +08:00
hc1913847458 b26f300832 issue 2021-09-06 18:06:59 +08:00
hc1913847458 349851dc59 issue 2021-09-06 18:04:38 +08:00
hc1913847458 09e9f01f7e save files 2021-09-06 18:04:25 +08:00
hc1913847458 da657e559b save files 2021-09-06 18:04:07 +08:00
caishi 53fa18907d 代码style 2021-09-06 18:03:05 +08:00
hc1913847458 9d4893eb49 限制字符 2021-09-06 18:03:05 +08:00
caishi 6e849aa800 install babel-polyfill 2021-09-06 18:02:45 +08:00
caishi 194f6af412 merge develop 2021-09-06 18:02:09 +08:00
caishi d5652fba18 新建项目-maxlength 2021-09-06 18:00:24 +08:00
caishi fbe5da1014 设置所有标签的marginbottom为0 2021-09-06 17:59:45 +08:00
caishi 478b080d45 issue 49808 :tab页鼠标悬停规范调整 2021-09-06 17:55:15 +08:00
caishi dcef7e7872 reset 2021-09-06 17:54:35 +08:00
caishi 2882289267 里程碑-切换分页需要带上状态参数 2021-09-06 17:54:35 +08:00
caishi 37f608cdb8 代码库-样式 2021-09-06 17:54:35 +08:00
caishi 984856a29c md fullscreen 2021-09-06 17:48:13 +08:00
caishi cbfb73d1cb 同上-细节修改 2021-09-06 17:48:13 +08:00
caishi 411b4e9de6 代码库样式整改 2021-09-06 17:47:47 +08:00
hc1913847458 b611308f3c 'update' 2021-09-06 17:41:29 +08:00
jasder 154225d229 Merge pull request 'FIX 解决组织跨项目发送Pr的bug' (#51) from feature_router into pre_develop 2021-09-06 17:02:21 +08:00
baladiwei c859a16837 Merge pull request '修复登陆和未登陆时,访问没有的项目返回页面不同的问题' (#50) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-06 16:36:43 +08:00
何童崇 33a669a940 修改路由跳转404的问题 2021-09-06 10:37:06 +08:00
jasder 7b2d842ac2 Merge pull request '修复PR的bug' (#48) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-04 11:26:45 +08:00
何童崇 245086cf47 Merge branch 'pre_develop' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-04 11:19:37 +08:00
何童崇 a90eeac318 上传PR修改 2021-09-04 11:16:08 +08:00
何童崇 1764fbdb88 速度速度 2021-09-03 21:51:53 +08:00
caishi 22ccc3c974 fork白屏+关注 2021-09-03 19:06:14 +08:00
jasder 46f83ed44d Merge pull request '发布 V3.1.0版本' (#47) from pre_develop_dev into pre_develop 2021-09-03 18:13:49 +08:00
jasder 657bfbc6df Merge pull request 'FIX 合并 featrue_router' (#46) from feature_router into pre_develop_dev 2021-09-03 18:01:09 +08:00
jasder 7e1dde4ecd Merge pull request '新建项目接口报错后前端需要去掉加载效果' (#45) from caishi/forgeplus-react:feature_router into feature_router 2021-09-03 17:57:01 +08:00
caishi 3d6136bbbb 新建项目不成功,需要去掉加载状态 2021-09-03 17:46:49 +08:00
jasder b6ed5d79e7 Merge pull request '修改相关issue的代码提交' (#44) from caishi/forgeplus-react:feature_router into feature_router 2021-09-03 17:18:20 +08:00
caishi 21ce83e537 issue 2021-09-03 17:14:45 +08:00
jasder 03a8e79382 Merge pull request 'issue修改' (#43) from caishi/forgeplus-react:feature_router into feature_router 2021-09-03 16:08:12 +08:00
caishi 3fce9a99ad 头部姓名过长,省略 2021-09-03 14:57:39 +08:00
caishi db18cd41b0 Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-03 14:46:16 +08:00
caishi 7fb7dbe687 issue 2021-09-03 14:46:06 +08:00
jasder 5e58f349cd Merge pull request '修改路由相关issue' (#42) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-03 14:43:55 +08:00
何童崇 4e08bf6fe3 修改路由labels 2021-09-03 14:39:21 +08:00
caishi bc8e513b97 Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-03 14:10:57 +08:00
caishi 4621a75ec8 项目列表 2021-09-03 14:10:36 +08:00
何童崇 17671a7c87 Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-03 13:51:24 +08:00
jasder 47ecda06ca Merge pull request '个人信息资料提示+新的需求' (#41) from caishi/forgeplus-react:feature_router into feature_router 2021-09-03 13:50:38 +08:00
何童崇 ebd94ed3a1 修改路由相关issue及顺带测出的问题 2021-09-03 13:48:56 +08:00
caishi d1128a0dfc 个人资料完善box style 2021-09-03 13:48:07 +08:00
baladiwei 47f5d98d79 Merge pull request '修改例子中的路由以及新提出的路由,修改之前由于修改路由带来的issue' (#40) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-03 11:48:21 +08:00
何童崇 a5bdf26f96 修改路由issue 2021-09-03 11:38:22 +08:00
何童崇 f6a0c3b33f Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-03 11:37:08 +08:00
jasder 9d2dc3426c Merge pull request '关注页面issue+个人资料弹框漏掉的按钮' (#39) from caishi/forgeplus-react:feature_router into feature_router 2021-09-03 11:32:40 +08:00
caishi 5abe75d637 个人资料issue+样式 2021-09-03 11:26:23 +08:00
何童崇 9e14821125 Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-03 10:17:32 +08:00
jasder 2f3f33d58e Merge pull request '个人资料完善弹框样式修改' (#38) from caishi/forgeplus-react:feature_router into feature_router 2021-09-03 10:13:35 +08:00
caishi 43b31427d8 弹框样式修改 2021-09-03 10:08:24 +08:00
何童崇 03d568f5f7 合并蔡世代码并解决冲突 2021-09-03 09:26:34 +08:00
何童崇 24c4c746cd 修改其他路由及修改issue 2021-09-03 09:23:12 +08:00
jasder 3fc0737e43 Merge pull request '个人信息资料完善提示弹框,基本资料页面路由修改' (#37) from caishi/forgeplus-react:feature_router into feature_router 2021-09-02 17:44:43 +08:00
何童崇 4f39f03b19 修改路由的issue 2021-09-02 17:20:26 +08:00
caishi b475edae74 hover-issue delete 2021-09-02 16:39:35 +08:00
caishi dbb5efdcd5 issue-part 2 2021-09-02 15:04:26 +08:00
caishi 322260c3fc Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router
# Conflicts:
#	src/forge/Team/List.jsx
2021-09-02 14:16:30 +08:00
caishi 375ad38364 issue 2021-09-02 14:13:16 +08:00
baladiwei ef6f334d94 Merge pull request '修改路由带来的bug' (#36) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-02 13:40:15 +08:00
何童崇 559b797c2e 修改路由带来的bug 2021-09-02 13:37:24 +08:00
caishi adc134ec44 复制-组件 2021-09-02 10:10:21 +08:00
caishi bf3f404238 Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-01 18:15:32 +08:00
jasder 9b62b3b047 Merge pull request '上传路由修改,上传sourcesource-map配置' (#35) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-01 17:54:05 +08:00
caishi c14f06301f appconfig 2021-09-01 17:49:42 +08:00
caishi 105e1c61b8 个人资料是否完善-弹框 2021-09-01 17:46:58 +08:00
何童崇 80dde2bc97 上传路由修改,上传sourcesource-map配置 2021-09-01 17:34:47 +08:00
caishi 3b03ead3af Merge branch 'feature_router' of https://git.trustie.net/Gitlink/forgeplus-react into feature_router 2021-09-01 11:24:43 +08:00
caishi 86f50d4278 基本资料 2021-09-01 11:24:37 +08:00
baladiwei bddc0f2f91 Merge pull request '改nopage的问题' (#34) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-01 11:01:22 +08:00
何童崇 30a141c92e 修改nopage的问题 2021-09-01 10:58:38 +08:00
caishi 58115f8dae box 2021-09-01 10:28:11 +08:00
baladiwei 9655cd5105 Merge pull request 'router修改' (#33) from tongChong/forgeplus-react:feature_router into feature_router 2021-09-01 09:41:00 +08:00
何童崇 01b3ee8d49 修改projects路由 2021-09-01 09:33:22 +08:00
何童崇 662a758980 修改user/org路由时的bug 2021-08-30 17:42:13 +08:00
何童崇 0b64631222 合并镜像、权限、wiki修改 2021-08-30 10:39:09 +08:00
何童崇 eb02b814a9 修改user路由 2021-08-30 10:31:51 +08:00
baladiwei ca9a606e53 Merge pull request 'pre-release merge' (#29) from pre_develop_dev into pre_develop 2021-08-30 10:26:54 +08:00
baladiwei 8adf7f8de6 Merge pull request '优化日期显示' (#31) from tongChong/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-08-27 16:33:43 +08:00
何童崇 349c2a6f35 修改返回日期的显示 2021-08-27 16:31:15 +08:00
baladiwei f096d6db6e Merge pull request '注释资源库,wiki修改显示' (#30) from tongChong/forgeplus-react:pre_develop_dev into pre_develop_dev 2021-08-27 16:10:00 +08:00
何童崇 492e8e067f 注释资源库,wiki修改显示 2021-08-27 16:07:21 +08:00
baladiwei 95ae2bbd46 Merge pull request '组织团队权限-测试通过版' (#28) from caishi/forgeplus-react:pre_develop into pre_develop_dev 2021-08-27 15:01:47 +08:00
caishi a1b5395b8c 合并请求-判断条件改成user_admin_or_member 2021-08-27 14:04:27 +08:00
caishi dee7b23f3e 转移到组织-提示文案 2021-08-27 11:44:41 +08:00
caishi f7dd67d41a merge 2021-08-27 10:54:55 +08:00
caishi e7fd980116 组织团队权限 2021-08-27 10:53:00 +08:00
caishi d8ab7c0759 权限问题测试版-第二版 2021-08-26 17:38:56 +08:00
caishi d64eb738f7 团队权限分支 2021-08-26 17:38:56 +08:00
jasder 55080f93c1 Merge pull request '镜像问题websocket失败兼容' (#27) from tongChong/forgeplus-react:hotfix_websocket into pre_develop_dev 2021-08-26 17:35:00 +08:00
何童崇 e606147d03 修改组织和首页的路由 2021-08-26 14:18:14 +08:00
caishi 7851785335 团队权限分支 2021-08-25 14:25:35 +08:00
何童崇 52e08e77e5 修改websocket问题 2021-08-25 11:52:52 +08:00
baladiwei fcac8c782a Merge pull request '组织团队(新增和设置)权限' (#21) from caishi/forgeplus-react:pre_develop into pre_develop_dev 2021-08-25 11:03:30 +08:00
caishi 061fa0ee71 组织团队设置:增加可选访问单元wiki 2021-08-24 16:25:55 +08:00
caishi 5d465ec782 组织团队设置:可以设置版本库权限,允许设置访问项目单元 2021-08-24 16:25:47 +08:00
baladiwei 39fef1ce3c Merge pull request '修改头像的bug,提取copyUrl组件,优化函数式模态框组件' (#20) from tongChong/forgeplus-react:feature_wikis into pre_develop_dev 2021-08-23 11:47:44 +08:00
caishi 0d0b164370 Merge branch 'develop' of https://git.trustie.net/jasder/forgeplus-react into develop 2021-08-23 10:15:55 +08:00
caishi ec84ed56b0 reset 2021-08-23 10:15:32 +08:00
caishi 466ed1fe1b Merge branch 'pre_develop' into develop
# Conflicts:
#	public/css/iconfont.css
#	public/css/iconfont.js
#	public/css/iconfont.ttf
#	public/css/iconfont.woff
#	public/css/iconfont.woff2
2021-08-23 10:09:00 +08:00
caishi 9b101403a1 里程碑-切换分页需要带上状态参数 2021-08-23 10:08:04 +08:00
何童崇 d1a3c7b9c3 优化删除函数组件 2021-08-23 09:41:57 +08:00
何童崇 ba263a28f1 修改头像,增加复制toolTip组件,优化组件代码 2021-08-20 14:45:16 +08:00
jasder fb872f3a3d change request url 2021-08-20 09:06:57 +08:00
何童崇 19ef012a0e 修改指向路径 2021-08-20 09:01:40 +08:00
jasder b3d62b9cf1 FIX bug 2021-08-19 21:54:56 +08:00
何童崇 d988c4ea5f 兼容页面刷新时的id新增 2021-08-19 21:23:48 +08:00
caishi 313f1edc71 镜像问题websocket传值
镜像问题websocket传值
2021-08-19 17:44:13 +08:00
caishi 8adc662e9b wiki功能分支合并
wiki功能分支合并
2021-08-19 17:31:36 +08:00
何童崇 ff75065a0a 新增wiki模块 2021-08-19 17:21:18 +08:00
何童崇 6e74f88d9e 紧急修复镜像bug 2021-08-19 10:40:44 +08:00
caishi 6beb4c2c8a 修复镜像项目时的展示问题
修复镜像项目时的展示问题
2021-08-18 14:43:28 +08:00
何童崇 e8dadb187b 紧急修复镜像bug 2021-08-18 14:38:11 +08:00
caishi 3a1fd14e7c 代码库-样式 2021-08-13 17:12:56 +08:00
caishi 20f64bdf81 md fullscreen 2021-08-12 17:36:37 +08:00
caishi 2347d04710 同上-细节修改 2021-08-12 15:24:45 +08:00
caishi d13d94e9cf 代码库样式整改 2021-08-12 11:45:56 +08:00
caishi 3294d99516 href 2021-08-09 11:03:49 +08:00
caishi 00402ef13d Merge branch 'master' of https://git.trustie.net/jasder/forgeplus-react
# Conflicts:
#	src/forge/Main/sub/UpdateDescModal.jsx
2021-08-09 10:37:23 +08:00
caishi 8f2df90555 代码style 2021-08-09 10:36:15 +08:00
caishi 7530d3f9c4 Merge branch 'develop' 2021-08-06 17:07:54 +08:00
caishi 001cb8da53 issue 2021-08-06 15:06:23 +08:00
caishi d09e6e2bc6 issue 2021-08-06 14:07:59 +08:00
caishi e2ad3b1308 issue-同步镜像项目不能对仓库进行操作(新建合并请求、新建发行版等) 2021-08-05 17:13:57 +08:00
caishi 14f80d56ad Merge branch 'develop' of https://git.trustie.net/jasder/forgeplus-react into develop 2021-08-05 11:12:11 +08:00
caishi 65e7025035 Merge branch 'develop' of https://git.trustie.net/jasder/forgeplus-react into develop
# Conflicts:
#	src/forge/Main/sub/UpdateDescModal.jsx
2021-08-05 11:11:51 +08:00
hc1913847458 aa786f0cf0 限制字符 2021-08-05 10:57:43 +08:00
hc1913847458 2aad9c67f5 限制字符 2021-08-05 10:53:29 +08:00
hc1913847458 b7869e5203 Merge branch 'develop' of https://git.trustie.net/jasder/forgeplus-react 2021-08-05 10:48:43 +08:00
hc1913847458 b238bb51ca 限制字符 2021-08-05 10:47:22 +08:00
hc1913847458 de636eed6d 限制字符 2021-08-05 10:42:08 +08:00
caishi 4bde5da97c markdown-issue 2021-08-05 10:30:04 +08:00
caishi f944ebad6f issue 2021-08-04 17:12:29 +08:00
hc1913847458 ad7ab189b1 限制字符 2021-08-04 14:42:08 +08:00
caishi 5140bfbe77 issue修改 2021-08-03 17:37:14 +08:00
caishi affbe87dfd 新增流水线弹框z-index 2021-08-03 10:38:39 +08:00
caishi dd1beb3116 合并请求-已拒绝的不能编辑 2021-08-03 09:34:11 +08:00
caishi d67862156c update issue 2021-08-02 15:32:51 +08:00
caishi c9802c26a4 Merge branch 'develop' 2021-08-02 10:35:49 +08:00
caishi 47365c0bed webhook-修改一版 2021-08-02 10:35:36 +08:00
caishi 4ec840f252 Merge branch 'develop' 2021-07-30 20:13:49 +08:00
caishi b1ec068663 webhook自动填充 2021-07-30 20:13:34 +08:00
caishi 44a8f806e0 Merge branch 'develop' 2021-07-30 17:44:17 +08:00
caishi 51d34a7667 同上-password-webhook 2021-07-30 17:35:53 +08:00
caishi 9408ad7dcb Merge branch 'develop' 2021-07-30 17:03:19 +08:00
caishi 2b47c1ff9a 同上-修改bug 2021-07-30 17:02:44 +08:00
caishi f7698334ab webhook上线测试版-1 2021-07-30 15:06:32 +08:00
caishi 810ea37bed Merge branch 'develop' 2021-07-26 09:38:44 +08:00
caishi f100875b0f ssh翻页 2021-07-26 09:38:21 +08:00
caishi 6679fe8a48 Merge branch 'develop' 2021-07-22 17:44:30 +08:00
caishi 4f9f5649a9 设置模块-测试版第一版 2021-07-22 17:44:12 +08:00
caishi d31b932efe Merge branch 'develop' 2021-07-21 10:10:53 +08:00
caishi f90243243f 新建项目跳转后的地址 2021-07-21 10:09:48 +08:00
caishi 7a5db58a03 appconfig 2021-07-15 14:46:22 +08:00
caishi 0889ee69c5 未登录时:路由/不显示顶部和底部 2021-07-13 10:42:56 +08:00
caishi 876ee66a05 详情:复刻按钮不能连续点击 2021-07-13 09:58:08 +08:00
caishi cb514315a6 新建合并请求:切换目标分支或者源分支时不用调用check_can_merge接口 2021-07-12 18:22:36 +08:00
caishi c5b729038c 邀请码位置,页面整体的加载 2021-07-09 17:10:55 +08:00
caishi a6d713d1f6 代码库:增加文件类型submodule 不允许点击 2021-07-09 11:28:51 +08:00
caishi ee1217e171 本地版:replaceAll无替换时报错 2021-07-09 11:05:19 +08:00
caishi 967ff385aa 代码库根目录:点击readme文件的编辑按钮时要显示编辑状态 2021-07-07 11:16:07 +08:00
caishi e6e0546e27 permission有为空的情况 2021-07-06 14:40:23 +08:00
caishi 1bb339bfb1 新建:拥有者默认选中当前登录用户,默认路由 2021-07-06 11:54:57 +08:00
caishi 07852b204c Merge branch 'develop' 2021-07-05 20:35:59 +08:00
caishi 275b7d2015 数据为0时不显示 2021-07-05 20:35:29 +08:00
caishi 9e9e4c07bf 合并请求详情:发布合并请求者跳转链接错误 2021-07-05 15:04:17 +08:00
caishi 934ac61b77 Merge branch 'develop' 2021-07-02 18:19:02 +08:00
caishi f854d2164c 工作流-构建列表-头像地址错误 2021-07-02 18:18:49 +08:00
caishi 95091d0e08 Merge branch 'develop' 2021-07-02 15:37:43 +08:00
caishi e48628389e 镜像地址增加跳转链接 2021-07-02 15:35:43 +08:00
caishi e31ff9bdf3 Merge branch 'develop' 2021-07-01 17:00:43 +08:00
caishi 62b9abedbb index.html lang="zh-cN"禁止浏览器翻译 2021-07-01 16:45:47 +08:00
caishi f97ca92e41 update 2021-07-01 15:48:04 +08:00
caishi 84bbf5fd52 易修批量修改:非项目协作者不能操作 2021-07-01 13:56:09 +08:00
caishi ff60cf11e1 update issue 2021-06-30 10:43:22 +08:00
caishi 45f188e6f4 fork项目不能修改可见性(公有私有) 2021-06-29 17:29:35 +08:00
caishi 4b832f40c0 项目详情:顶部信息排版调整,修改显示bug 2021-06-29 14:03:53 +08:00
caishi eba6ed0876 搜索的接口改用正式版对应的服务器地址 2021-06-28 10:44:42 +08:00
caishi db682ace86 Merge branch 'develop' 2021-06-25 18:34:19 +08:00
caishi 1cdf316852 合并请求:冲突文件的显示换行 2021-06-25 18:33:54 +08:00
caishi 777dbd0f43 Merge branch 'develop' 2021-06-25 18:21:48 +08:00
caishi 79996bd185 权限:易修和合并请求的新建修改等操作权限 2021-06-25 18:21:31 +08:00
caishi 2d312b6176 路由:tree后面的参数branch内容含有/ 2021-06-25 14:10:13 +08:00
caishi b44b6530e5 Merge branch 'develop' 2021-06-25 09:14:50 +08:00
caishi bad4f79a0c 易修:批量删除和批量修改issue状态要更新数量 2021-06-22 10:22:00 +08:00
caishi fad42414dc 代码库:提交信息的显示和隐藏 2021-06-21 17:52:48 +08:00
caishi c10799b6d0 Merge branch 'develop_search' into develop 2021-06-21 10:00:35 +08:00
caishi b808bcee99 Merge branch 'develop' 2021-06-18 16:56:18 +08:00
caishi cb95e50a82 代码库:从文件详情切换到文件列表时,上传文件和新建文件的按钮没有显示 2021-06-18 16:55:52 +08:00
caishi 5eaebd4e42 上传文件显示: ADD file via upload
创建新文件显示: Add 文件名
修改文件: Update 文件名
2021-06-18 14:23:46 +08:00
caishi e9badf0d7c 合并请求默认选中开启中的 2021-06-18 09:59:33 +08:00
caishi e72e817bb1 复刻自,如果是组织要跳转到组织界面 2021-06-17 16:28:27 +08:00
caishi b5835145f7 个人中心性别icon不显示 2021-06-17 11:38:53 +08:00
caishi d4e1b2f414 详情banner数量,显示开启中的数量,且执行关闭或者拒绝等修改状态的操作时要更新数量 2021-06-16 15:51:47 +08:00
caishi f4b3afde6a 项目详情和个人中心的项目列表,增加私有标识 2021-06-16 11:17:46 +08:00
caishi 5806f60491 右侧按钮-帮助弹框 2021-06-16 09:17:33 +08:00
caishi 8298aef72f forked from 文案 2021-06-15 11:36:42 +08:00
caishi 7ed8d1c8c3 合并全局搜索 2021-06-15 09:21:56 +08:00
何童崇 1d274985ca 解决冲突并提交 2021-06-11 19:03:17 +08:00
caishi c0f7c489fb Merge branch 'develop' 2021-06-11 18:11:43 +08:00
何童崇 71d1eb57cc 还原代理的配置 2021-06-11 17:51:54 +08:00
caishi 56434a9714 Merge branch 'draft' into develop 2021-06-11 17:21:27 +08:00
caishi 8b161630c3 添加成员--随便输入不存在的用户时的提示 2021-06-11 16:46:59 +08:00
何童崇 405053696c 修改头部搜索框高度和代理服务路径 2021-06-11 15:28:40 +08:00
caishi 3dffbce8d9 头部导航栏-搜索小改 2021-06-11 11:01:46 +08:00
caishi 63e9cfe394 项目邀请码-第一版测试版上线 2021-06-11 09:25:59 +08:00
何童崇 b38cdd4bb3 修改search校验,同页搜索问题 2021-06-10 17:05:49 +08:00
caishi cacb8c84ae 合并develop分支的个人中心改版-全部 2021-06-10 09:36:03 +08:00
何童崇 681d0b17e3 修改搜索的功能及图标 2021-06-09 19:47:14 +08:00
caishi fb8ae3fcdf 小修 2021-06-09 18:08:49 +08:00
caishi a257d832cb issue 2021-06-09 18:08:01 +08:00
caishi ff7d191011 merge 2021-06-09 18:07:39 +08:00
caishi 9a2c3f1754 merge 2021-06-09 18:06:54 +08:00
caishi bcdf506e6c 数据统计三个时间筛选参数值必须是时间戳 2021-06-09 18:06:14 +08:00
caishi ccc6cb5d26 merge 2021-06-09 18:03:52 +08:00
caishi 0661c6b932 添加成员后要清除选中的成员 2021-06-09 18:03:24 +08:00
caishi b5fa231adf 小修 2021-06-09 18:00:31 +08:00
caishi 39f0a165b6 issue 2021-06-09 18:00:09 +08:00
caishi 2157f2ffe5 merge 2021-06-09 18:00:06 +08:00
caishi 7c40f9be36 merge 冲突 2021-06-09 17:59:07 +08:00
caishi 93694594c4 冲突 2021-06-09 17:58:11 +08:00
caishi 99947c0c87 merge 2021-06-09 17:56:51 +08:00
caishi 03cff6ec2e merge 2021-06-09 17:56:02 +08:00
caishi f86acfebdf merge冲突 2021-06-09 17:55:12 +08:00
caishi 9a62d7806e 同上-修改细节 2021-06-09 17:54:06 +08:00
caishi a7df6da5f0 merge 个人中心部分 冲突 2021-06-09 17:53:57 +08:00
caishi eab68ac270 概览页数据绑定完成,只差数据统计页 2021-06-09 17:52:43 +08:00
caishi a9e3513706 year 2021-06-09 17:52:31 +08:00
caishi 6b20391c72 merge 个人中心改版 2021-06-09 17:40:05 +08:00
caishi 32299252ad 详情+邀请码的显示 2021-06-09 17:37:04 +08:00
caishi a12ab04ec0 小修 2021-06-09 11:52:36 +08:00
何童崇 f93df6069c 修改搜索placeplaceholder 2021-06-08 16:08:58 +08:00
何童崇 ff2586f5b9 注释众包/帖子等tab 2021-06-08 16:05:32 +08:00
caishi b7613584f9 添加成员后要清除选中的成员 2021-06-08 15:09:52 +08:00
caishi bc64cbb415 Merge branch 'develop' 2021-06-08 14:56:20 +08:00
caishi 0b7d6ab5fd issue 2021-06-08 14:56:00 +08:00
caishi 3d764d3075 issue+新建组织-未登录没有弹出登录框 2021-06-08 10:44:44 +08:00
caishi 3cd51d1c72 修改-个人主页 2021-06-07 11:13:38 +08:00
caishi 40f8f5d872 数据统计三个时间筛选参数值必须是时间戳 2021-06-04 14:29:55 +08:00
caishi e185ae6484 同上+样式 2021-06-04 13:58:42 +08:00
caishi 0bfa7572a5 bug 2021-06-04 10:55:05 +08:00
caishi fd19a43168 修改资料+密码管理 2021-06-04 09:43:38 +08:00
何童崇 dd9c11dbd9 上传搜索的页面 2021-06-03 10:37:03 +08:00
何童崇 695d5e4f50 Merge remote-tracking branch 'upstream/develop' into dev-search 2021-06-03 10:01:51 +08:00
何童崇 b88c5b1faf 修改导航的搜索 2021-06-03 10:00:24 +08:00
caishi 975d49b80b 同上=issue修改 2021-06-02 18:22:29 +08:00
caishi 4b6592dfb3 同上-修改细节 2021-05-31 18:39:30 +08:00
caishi 1432afebfd 个人中心整体上线 2021-05-31 17:44:30 +08:00
caishi a9285f37e7 概览页数据绑定完成,只差数据统计页 2021-05-31 09:48:30 +08:00
caishi d41dce26b1 year 2021-05-28 17:02:54 +08:00
caishi 7bbda5f65d 概览+用户画像 2021-05-28 16:19:40 +08:00
caishi fa169b27cd Merge branch 'develop' 2021-05-26 16:48:35 +08:00
caishi 0274cf84ee 上一版+update 2021-05-26 16:48:18 +08:00
caishi 8e419e63da 上一版-update 2021-05-26 16:00:55 +08:00
caishi 1378ba5c93 代码库-无默认分支时调用entries接口未传ref参数,+个人主页的三个echart 2021-05-26 15:25:21 +08:00
caishi 3e0814344f Merge branch 'develop' 2021-05-25 11:25:04 +08:00
caishi ae9b48953e markdown定位问题 2021-05-25 10:05:14 +08:00
caishi eb58f91dbf Merge branch 'develop' 2021-05-21 19:21:32 +08:00
caishi 3453aa31eb readme下拉 2021-05-21 19:21:16 +08:00
caishi ebf75ed433 issue 2021-05-21 18:58:17 +08:00
caishi a1bd41795a 分享功能(仅微信)+ 合并请求增加状态的显示,合并请求详情增加(冲突情况下的提示) 2021-05-21 16:44:40 +08:00
caishi 513255428c Merge branch 'develop'
# Conflicts:
#	package-lock.json
2021-05-14 17:04:57 +08:00
caishi 09bf75c6c3 右侧按钮-帮助列表超出没有隐藏 2021-05-14 17:03:27 +08:00
caishi 70af7dae5f 右侧按钮-帮助和返回顶部 2021-05-14 14:37:59 +08:00
caishi 3135300fe6 merge d029840874 2021-05-14 11:32:01 +08:00
caishi d029840874 头部导航栏无logo是nav也要显示 2021-05-14 11:30:08 +08:00
caishi 303e06586e 新增icon+添加右侧的返回顶部等按钮(接口没有,先隐藏、需要合并到其它分支,上一个提交也一样) 2021-05-14 09:32:23 +08:00
nigel007 01d3972d3e add information 2021-05-13 22:28:57 +08:00
nigel007 36691c25a4 remove description 2021-05-13 16:05:54 +08:00
nigel007 95bc2d7e3e change width css 2021-05-13 09:39:04 +08:00
nigel007 c52fa2e79f change appearance in blockchain functions 2021-05-12 15:45:02 +08:00
nigel007 c7da648ae8 merge conflict 2021-05-11 22:07:25 +08:00
caishi 7ccc1221ef style 2021-05-11 14:22:01 +08:00
caishi 6a6f0ca784 组件之间进行页面跳转时,滚动条未返回至顶部 2021-05-10 17:24:49 +08:00
caishi b70dd5928e details 2021-05-10 11:34:30 +08:00
caishi 8baf2cb49c install babel-polyfill 2021-05-08 17:28:14 +08:00
caishi ecc6387113 no message 2021-05-08 17:22:44 +08:00
caishi 990c4e22b0 编辑合并请求-url地址错误 2021-05-08 14:35:51 +08:00
caishi 7eea9316dd detail+同步镜像type=2的才不需要合并请求 2021-05-07 17:41:01 +08:00
caishi 6a546c79e4 merge 2021-05-07 16:36:22 +08:00
caishi 4c48b6c77a merge 2021-05-07 16:35:17 +08:00
caishi 4d5430c3ed 统一项目简介、项目概览 2021-05-07 16:33:57 +08:00
caishi d49af735f1 merge 2021-05-06 17:21:19 +08:00
caishi 03370e8a07 merge 2021-05-06 17:19:09 +08:00
caishi 0b43fa8952 merge develop 2021-05-06 17:18:30 +08:00
caishi 465c4cc8c7 04-28休假期修改issue --需合并至其它分支(合并请求相关) 2021-04-28 20:23:57 +08:00
caishi 37668ddcd4 组织团队-无数据显示错误 2021-04-27 09:47:10 +08:00
caishi 7102594444 代码库编辑文件-切换到其它目录后要重新将编辑状态改为显示状态 2021-04-25 17:48:58 +08:00
nigel007 fe681a07d9 merge conflict 2021-04-24 08:48:07 +08:00
nigel007 21762c21eb change blockchain related things 2021-04-23 21:38:14 +08:00
caishi b2f2df65bb 样式覆盖 2021-04-23 18:07:15 +08:00
caishi 8a577fb263 资源库 2021-04-23 17:16:50 +08:00
caishi 5c491071b6 +上 关注后不需要提示 2021-04-23 16:37:16 +08:00
caishi c554237076 +上 贡献者悬浮框里增加的跳转链接不要新开页 2021-04-23 16:37:06 +08:00
caishi d22a741bf7 贡献者-悬浮内容增加跳转链接 2021-04-23 16:36:56 +08:00
caishi 383b3f5d74 imageUrl + / 2021-04-23 16:36:41 +08:00
caishi 63da7adcf9 个人中心关注-关注或者取消关注未更新状态 2021-04-23 16:36:31 +08:00
caishi 3243aeebc6 贡献者-悬浮卡片-测试版1 2021-04-23 16:36:22 +08:00
caishi 1a86a75345 发布评论者头像路径错误 2021-04-23 16:36:11 +08:00
caishi 3b6cc99d49 merge 2021-04-23 16:35:49 +08:00
caishi d872ffc606 merge 2021-04-23 16:31:15 +08:00
caishi 3b69c01ead merge 2021-04-23 16:30:45 +08:00
caishi 1e0608aa14 合并请求-提出申请者头像显示问题 2021-04-23 16:30:07 +08:00
caishi 9b6816e346 团队项目-团队项目管理-显示的name和跳转的login 2021-04-23 16:29:57 +08:00
caishi 6ee257231d 切换左侧目录,选择不同的文件时,文件详情没有更新 2021-04-23 16:29:46 +08:00
caishi 70edb73f6c all-默认头像(首字母加背景颜色) 2021-04-23 16:29:35 +08:00
caishi 5c7553d4aa merge 2021-04-23 16:29:16 +08:00
caishi 278701f24b 上线后的getImageURL也不用在前面加/ + 一些小样式修改 2021-04-23 16:27:56 +08:00
caishi 97ab819bf9 merge 2021-04-23 16:27:37 +08:00
caishi d870f17b85 readme-文件增加一个目录下拉icon 2021-04-23 16:26:02 +08:00
caishi 91ac6c2357 组织团队-新增一个团队标识 2021-04-23 16:25:47 +08:00
caishi 3702d1c1a5 merge 2021-04-23 16:25:35 +08:00
caishi 93d48c359e merge 2021-04-23 16:25:03 +08:00
caishi 80dace18e9 资源库不需要按引用次数排序 2021-04-23 16:24:23 +08:00
caishi 375cbb37df merge 2021-04-23 16:24:02 +08:00
caishi 10d933e037 merge develop 2021-04-23 16:23:29 +08:00
caishi 4fdd3f6f80 组织-团队列表的头像login为undefined 2021-04-23 16:22:36 +08:00
caishi 458b56e33b 去掉悬浮手册按钮 2021-04-23 16:22:22 +08:00
caishi c256887132 注册成功后跳转到首页 2021-03-31 15:13:32 +08:00
caishi 6a588db7f6 清理代码 2021-03-31 15:03:16 +08:00
caishi 6c4e1c6665 Merge branch 'standalone' into dev_local 2021-03-31 14:42:24 +08:00
caishi c554d2c00d 重置settings为undefined 2021-03-31 14:35:23 +08:00
caishi b69bf5974a remove 2021-03-31 14:28:22 +08:00
caishi ecb1691b4d Trustie 2021-03-31 14:17:48 +08:00
caishi 6a9f2b31a6 注册页面logo和底部信息 2021-03-31 14:04:09 +08:00
caishi 4947cd8456 浏览器ico要用trustie的logo 2021-03-31 12:07:11 +08:00
caishi 8429effe16 没logo时会将setting重置为空 2021-03-31 12:02:38 +08:00
caishi 49ebe450be 合并测试版分支 2021-03-31 11:21:07 +08:00
caishi e3c926da77 注册 2021-03-29 17:37:16 +08:00
caishi af48da2eb3 href 2021-03-29 17:14:56 +08:00
caishi 6630309466 Merge branch 'develop' into dev_local 2021-03-29 16:58:48 +08:00
caishi a7c3dee7e3 2020-11-26 10:55:03 +08:00
622 changed files with 32365 additions and 9862 deletions

3
.gitignore vendored
View File

@ -1,3 +1,4 @@
.idea/
# Logs # Logs
logs logs
*.log *.log
@ -37,7 +38,7 @@ bower_components
# Compiled binary addons (https://nodejs.org/api/addons.html) # Compiled binary addons (https://nodejs.org/api/addons.html)
build/ build/
src/.umi/
# Dependency directories # Dependency directories
node_modules/ node_modules/
jspm_packages/ jspm_packages/

File diff suppressed because it is too large Load Diff

2
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,2 @@
{
}

124
LICENSE Normal file
View File

@ -0,0 +1,124 @@
木兰宽松许可证, 第2版
2020年1月 http://license.coscl.org.cn/MulanPSL2
您对“软件”的复制、使用、修改及分发受木兰宽松许可证第2版“本许可证”的如下条款的约束
0. 定义
“软件” 是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
“贡献” 是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
“贡献者” 是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
“法人实体” 是指提交贡献的机构及其“关联实体”。
“关联实体” 是指对“本许可证”下的行为方而言控制、受控制或与其共同受控制的机构此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
1. 授予版权许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。
2. 授予专利许可
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。
3. 无商标许可
“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可但您为满足第4条规定的声明义务而必须使用除外。
4. 分发限制
您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
5. 免责声明与责任限制
“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。
6. 语言
“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。
条款结束
如何将木兰宽松许可证第2版应用到您的软件
如果您希望将木兰宽松许可证第2版应用到您的新软件为了方便接收者查阅建议您完成如下三步
1 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
2 请您在软件包的一级目录下创建以“LICENSE”为名的文件将整个许可证文本放入该文件中
3 请将如下声明文本放入每个源文件的头部注释中。
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
Mulan Permissive Software LicenseVersion 2
Mulan Permissive Software LicenseVersion 2 (Mulan PSL v2)
January 2020 http://license.coscl.org.cn/MulanPSL2
Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions:
0. Definition
Software means the program and related documents which are licensed under this License and comprise all Contribution(s).
Contribution means the copyrightable work licensed by a particular Contributor under this License.
Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License.
Legal Entity means the entity making a Contribution and all its Affiliates.
Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, control means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity.
1. Grant of Copyright License
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not.
2. Grant of Patent License
Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken.
3. No Trademark License
No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in section 4.
4. Distribution Restriction
You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software.
5. Disclaimer of Warranty and Limitation of Liability
THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW ITS CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
6. Language
THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL.
END OF THE TERMS AND CONDITIONS
How to Apply the Mulan Permissive Software LicenseVersion 2 (Mulan PSL v2) to Your Software
To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps:
Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner;
Create a file named "LICENSE" which contains the whole context of this License in the first directory of your software package;
Attach the statement to the appropriate annotated syntax at the beginning of each source file.
Copyright (c) [Year] [name of copyright holder]
[Software Name] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.

View File

@ -19,7 +19,8 @@ const getClientEnvironment = require("./env");
let publicPath = "/react/build/"; let publicPath = "/react/build/";
const publicUrl = publicPath.slice(0, -1); const publicUrl = publicPath.slice(0, -1);
const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; // const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false";
const shouldUseSourceMap = process.env.NODE_ENV !== "production";
const env = getClientEnvironment(publicPath); const env = getClientEnvironment(publicPath);
// This is the production configuration. // This is the production configuration.
@ -54,7 +55,8 @@ module.exports = {
}, },
bail: true, bail: true,
mode: "production", mode: "production",
devtool: false, //测试版 // devtool: false, //测试版
devtool: shouldUseSourceMap?'source-map':false,
entry: [require.resolve("./polyfills"), paths.appIndexJs], entry: [require.resolve("./polyfills"), paths.appIndexJs],
output: { output: {
path: paths.appBuild, path: paths.appBuild,

3564
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "forge", "name": "forge",
"version": "0.1.0", "version": "3.0.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@monaco-editor/react": "^2.3.0", "@monaco-editor/react": "^2.3.0",
@ -9,11 +9,12 @@
"antd": "^3.26.15", "antd": "^3.26.15",
"array-flatten": "^2.1.2", "array-flatten": "^2.1.2",
"autoprefixer": "7.1.6", "autoprefixer": "7.1.6",
"axios": "^0.18.1", "axios": "^0.24.0",
"babel-eslint": "7.2.3", "babel-eslint": "7.2.3",
"babel-jest": "20.0.3", "babel-jest": "20.0.3",
"babel-loader": "7.1.2", "babel-loader": "7.1.2",
"babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-polyfill": "^6.26.0",
"babel-preset-react-app": "^3.1.1", "babel-preset-react-app": "^3.1.1",
"babel-runtime": "6.26.0", "babel-runtime": "6.26.0",
"bizcharts": "^3.5.8", "bizcharts": "^3.5.8",
@ -21,15 +22,17 @@
"case-sensitive-paths-webpack-plugin": "2.1.1", "case-sensitive-paths-webpack-plugin": "2.1.1",
"chalk": "1.1.3", "chalk": "1.1.3",
"classnames": "^2.2.5", "classnames": "^2.2.5",
"clipboard": "^2.0.6", "clipboard": "^2.0.8",
"code-prettify": "^0.1.0", "code-prettify": "^0.1.0",
"codemirror": "^5.53.0", "codemirror": "^5.64.0",
"connected-react-router": "4.4.1", "connected-react-router": "4.4.1",
"cross-env": "^7.0.3",
"css-loader": "^3.5.2", "css-loader": "^3.5.2",
"dompurify": "^2.0.15", "dompurify": "^2.3.3",
"dotenv": "4.0.0", "dotenv": "4.0.0",
"dotenv-expand": "4.2.0", "dotenv-expand": "4.2.0",
"echarts": "^4.7.0", "echarts": "^4.9.0",
"echarts-wordcloud": "^2.0.0",
"editor.md": "^1.5.0", "editor.md": "^1.5.0",
"eslint": "4.10.0", "eslint": "4.10.0",
"eslint-config-react-app": "^2.1.0", "eslint-config-react-app": "^2.1.0",
@ -46,8 +49,9 @@
"install": "^0.12.2", "install": "^0.12.2",
"jest": "20.0.4", "jest": "20.0.4",
"js-base64": "^2.5.2", "js-base64": "^2.5.2",
"js2wordcloud": "^1.1.12",
"katex": "^0.11.1", "katex": "^0.11.1",
"lodash": "^4.17.15", "lodash": "^4.17.21",
"loglevel": "^1.6.8", "loglevel": "^1.6.8",
"marked": "^1.0.0", "marked": "^1.0.0",
"material-ui": "^1.0.0-beta.40", "material-ui": "^1.0.0-beta.40",
@ -62,7 +66,7 @@
"postcss-loader": "2.0.8", "postcss-loader": "2.0.8",
"promise": "8.0.1", "promise": "8.0.1",
"prop-types": "^15.6.1", "prop-types": "^15.6.1",
"qrcode.react": "^1.0.0", "qrcode.react": "^1.0.1",
"qs": "^6.9.3", "qs": "^6.9.3",
"quill": "^1.3.7", "quill": "^1.3.7",
"quill-delta-to-html": "^0.11.0", "quill-delta-to-html": "^0.11.0",
@ -80,6 +84,8 @@
"react-color": "^2.18.0", "react-color": "^2.18.0",
"react-content-loader": "^3.1.1", "react-content-loader": "^3.1.1",
"react-cookies": "^0.1.1", "react-cookies": "^0.1.1",
"react-countup": "^6.1.0",
"react-cropper": "^2.1.8",
"react-datepicker": "^2.14.1", "react-datepicker": "^2.14.1",
"react-dev-utils": "^9.2.0-next.80", "react-dev-utils": "^9.2.0-next.80",
"react-dom": "^16.13.1", "react-dom": "^16.13.1",
@ -92,6 +98,7 @@
"react-resizable": "^1.10.1", "react-resizable": "^1.10.1",
"react-router": "^4.2.0", "react-router": "^4.2.0",
"react-router-dom": "^4.2.2", "react-router-dom": "^4.2.2",
"react-slick": "^0.28.1",
"react-split-pane": "^0.1.91", "react-split-pane": "^0.1.91",
"react-url-query": "^1.5.0", "react-url-query": "^1.5.0",
"react-zmage": "^0.8.5-beta.31", "react-zmage": "^0.8.5-beta.31",
@ -99,9 +106,11 @@
"redux-thunk": "2.3.0", "redux-thunk": "2.3.0",
"rsuite": "^4.3.4", "rsuite": "^4.3.4",
"sass-loader": "7.3.1", "sass-loader": "7.3.1",
"save-dev": "0.0.1-security",
"scroll-into-view": "^1.14.2", "scroll-into-view": "^1.14.2",
"showdown": "^1.9.1", "showdown": "^1.9.1",
"showdown-katex": "^0.8.0", "showdown-katex": "^0.8.0",
"slick-carousel": "^1.8.1",
"store": "^2.0.12", "store": "^2.0.12",
"style-loader": "0.19.0", "style-loader": "0.19.0",
"styled-components": "^4.4.1", "styled-components": "^4.4.1",
@ -117,8 +126,8 @@
}, },
"scripts": { "scripts": {
"start": "node --max_old_space_size=15360 scripts/start.js", "start": "node --max_old_space_size=15360 scripts/start.js",
"build": "NODE_ENV=production node --max_old_space_size=15360 scripts/build.js", "build": "cross-env NODE_ENV=production node --max_old_space_size=15360 scripts/build.js",
"test-build": "NODE_ENV=testBuild node --max_old_space_size=15360 scripts/build.js", "test-build": "cross-env NODE_ENV=testBuild node --max_old_space_size=15360 scripts/build.js",
"pre-build": "NODE_ENV=preBuild node --max_old_space_size=15360 scripts/build.js", "pre-build": "NODE_ENV=preBuild node --max_old_space_size=15360 scripts/build.js",
"gen_stats": "NODE_ENV=production webpack --profile --config=./config/webpack.config.prod.js --json > stats.json", "gen_stats": "NODE_ENV=production webpack --profile --config=./config/webpack.config.prod.js --json > stats.json",
"ana": "webpack-bundle-analyzer ./stats.json", "ana": "webpack-bundle-analyzer ./stats.json",
@ -180,7 +189,7 @@
"eslintConfig": { "eslintConfig": {
"extends": "react-app" "extends": "react-app"
}, },
"proxy": "http://localhost:3000", "proxy": "http://localhost:3001",
"port": "3007", "port": "3007",
"devDependencies": { "devDependencies": {
"@babel/runtime": "7.0.0-beta.51", "@babel/runtime": "7.0.0-beta.51",
@ -188,6 +197,7 @@
"babel-core": "^6.26.0", "babel-core": "^6.26.0",
"babel-plugin-import": "^1.13.0", "babel-plugin-import": "^1.13.0",
"babel-plugin-transform-runtime": "^6.23.0", "babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
"babel-preset-es2015": "^6.24.1", "babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1", "babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1", "babel-preset-stage-2": "^6.24.1",
@ -198,9 +208,10 @@
"node-sass": "^4.12.0", "node-sass": "^4.12.0",
"optimize-css-assets-webpack-plugin": "^5.0.3", "optimize-css-assets-webpack-plugin": "^5.0.3",
"purgecss": "^2.1.2", "purgecss": "^2.1.2",
"react-json-view": "^1.21.3",
"reqwest": "^2.0.5", "reqwest": "^2.0.5",
"resize-observer-polyfill": "^1.5.1", "resize-observer-polyfill": "^1.5.1",
"terser-webpack-plugin": "^2.3.5", "terser-webpack-plugin": "^2.3.8",
"uglifyjs-webpack-plugin": "^2.2.0", "uglifyjs-webpack-plugin": "^2.2.0",
"webpack": "^4.42.1", "webpack": "^4.42.1",
"webpack-bundle-analyzer": "^3.7.0" "webpack-bundle-analyzer": "^3.7.0"

View File

@ -38,78 +38,6 @@
box-sizing: border-box; box-sizing: border-box;
} }
.head-nav ul#header-nav li {
float: left;
height: 60px;
line-height: 60px;
margin-right: 30px;
cursor: pointer;
position: relative;
font-size: 16px
}
.head-nav ul#header-nav li a {
display: block;
height: 100%;
width: 100%;
color: #fff
}
.head-nav ul#header-nav li a:hover {
color: #cccccc;
}
.head-nav ul#header-nav li:last-child {
margin-right: 0px
}
.head-nav ul#header-nav li.active a {
color: #459be5 !important;
}
.head-nav ul#header-nav li.active p {
color: #459be5 !important;
}
.head-nav ul#header-nav li p:hover {
color: #cccccc;
}
.head-nav ul#header-nav li p {
display: block;
height: 100%;
width: 100%;
color: #fff
}
.head-nav ul#header-nav li.active div ul li a {
color: #000 !important;
}
.head-nav ul#header-nav li.active div ul li a:hover {
color: #FFF !important;
}
.head-nav ul#header-nav li.active ul li a {
color: #000 !important;
}
.head-nav ul#header-nav li.active ul li a:hover {
color: #FFF !important;
}
.head-nav ul#header-nav li.active:after {
content: '';
position: absolute;
left: 0px;
top: auto;
bottom: 10px;
right: auto;
height: 2px;
width: 14px;
background-color: #459be5;
}
.nav-img { .nav-img {
position: absolute; position: absolute;
top: 2px; top: 2px;

View File

@ -114,14 +114,6 @@ a:visited {
color: #898989; color: #898989;
} }
a:hover {
color: #FF7500;
}
a:hover.fa {
color: #FF7500;
}
input, input,
textarea, textarea,
select { select {

View File

@ -97,10 +97,6 @@ a:visited {
color: #05101a; color: #05101a;
} }
a:hover {
color: #459be5;
}
ol, ol,
ul, ul,
li { li {

View File

@ -1,3 +1,4 @@
@charset "utf-8";
/* 头部 */ /* 头部 */
.header { .header {
width: 100%; width: 100%;
@ -1267,11 +1268,17 @@ a.shixun-task-btn {
/*-----------实训配置、评测脚本-------------*/ /*-----------实训配置、评测脚本-------------*/
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1631773579834') format('woff2'),
url('iconfont.woff?t=1631773579834') format('woff'),
url('iconfont.ttf?t=1631773579834') format('truetype');
}
html body { html body {
font-size: 14px; font-size: 14px;
line-height: 2.0; line-height: 2.0;
background: #fafafa; background: #fafafa;
font-family: "微软雅黑", "宋体"; font-family: "iconfont";
color: #05101a; color: #05101a;
height: 100%; height: 100%;
position: relative; position: relative;
@ -1307,6 +1314,7 @@ td,
span { span {
margin: 0; margin: 0;
padding: 0; padding: 0;
margin-bottom: 0px!important;
} }
table, table,
@ -1363,10 +1371,6 @@ a:visited {
color: #05101a; color: #05101a;
} }
a:hover {
color: #459be5;
}
ol, ol,
ul, ul,
li { li {
@ -1473,7 +1477,7 @@ a.edu-txt-w80,
/*隐藏*/ /*隐藏*/
.none { .none {
display: none display: none!important;
} }
.block { .block {
@ -1522,7 +1526,15 @@ a.edu-txt-w80,
.font-16 { .font-16 {
font-size: 16px !important; font-size: 16px !important;
} }
.weight400{
font-weight: 400;
}
.weight500{
font-weight: 500;
}
.weight{
font-weight: bold;
}
.font-17 { .font-17 {
font-size: 17px !important; font-size: 17px !important;
} }
@ -1542,6 +1554,9 @@ a.edu-txt-w80,
.font-25 { .font-25 {
font-size: 25px !important; font-size: 25px !important;
} }
.font-26 {
font-size: 26px !important;
}
.font-24 { .font-24 {
font-size: 24px !important; font-size: 24px !important;
@ -1563,6 +1578,9 @@ a.edu-txt-w80,
font-size: 36px !important; font-size: 36px !important;
} }
.font-40 {
font-size: 40px !important;
}
.font-50 { .font-50 {
font-size: 50px !important; font-size: 50px !important;
} }
@ -1748,12 +1766,20 @@ a.decoration {
margin-bottom: 10px; margin-bottom: 10px;
} }
.mb12 {
margin-bottom: 12px;
}
.mb13 {
margin-bottom: 13px;
}
.mb14 { .mb14 {
margin-bottom: 14px; margin-bottom: 14px;
} }
.mb15 { .mb15 {
margin-bottom: 15px; margin-bottom: 15px!important;
} }
.mb16 { .mb16 {
@ -2424,13 +2450,23 @@ input::-ms-clear {
.color-grey-c { .color-grey-c {
color: #ccc !important; color: #ccc !important;
} }
a.hoverLine:hover{
text-decoration: underline;
}
.color-grey-cd { .color-grey-cd {
color: #cdcdcd !important; color: #cdcdcd !important;
} }
.color-grey-d {
color: #ddd;
}
.color-grey-9 { .color-grey-9 {
color: #999999 !important; color: #999 !important;
}
a:hover{
color: #466AFF !important;
} }
.color-grey-98 { .color-grey-98 {
@ -2465,33 +2501,23 @@ input::-ms-clear {
a.color-grey-name:hover, a.color-grey-name:hover,
a.color-dark:hover, a.color-dark:hover,
a.color-grey-6:hover, a.color-grey-6:hover,
a.color-grey-3:hover { a.color-grey-3:hover,a.color-ooo:hover {
color: #4cacff !important; color: #2A61FF !important;
}
a.color-grey-9:hover,
a.color-grey-8:hover,
a.color-grey-c:hover {
color: #111C24 !important;
} }
/*蓝色*/ /*蓝色*/
.color-blue { .color-blue {
color: #4CACFF !important; color: #2A61FF !important;
}
.color-blue-file {
color: #4598FA!important;
} }
/* 绿色 */ /* 绿色 */
.color-green-file{
color: #28BD6C;
}
/*主*/ /*主*/
.color-blue_4C { .color-blue_4C {
color: #4CACFF !important; color: #4CACFF !important;
} }
a.color-blue:hover,
a.color-blue_4C:hover {
color: #459BE6 !important;
}
/*橙色*/ /*橙色*/
.color-orange { .color-orange {
@ -3409,7 +3435,7 @@ a.user_bluebg_btn {
} }
.cdefault { .cdefault {
cursor: default cursor: default!important;
} }
@ -3584,42 +3610,6 @@ a.user_bluebg_btn {
margin-right: 5px; margin-right: 5px;
} }
/*-------------------个人主页:右侧提示区域--------------------------*/
.-task-sidebar {
position: fixed;
width: 40px;
height: 180px;
right: 0;
bottom: 80px;
z-index: 10;
}
.-task-sidebar div {
height: 40px;
line-height: 40px;
box-sizing: border-box;
width: 40px;
background: #4CACFF;
color: #fff;
font-size: 20px;
text-align: center;
margin-bottom: 5px;
border-radius: 4px;
}
.-task-sidebar div i {
color: #fff;
}
.-task-sidebar div i:hover {
color: #fff !important;
}
.gotop {
background-color: rgba(208, 207, 207, 0.5) !important;
padding: 0px !important;
}
/***** loading ******/ /***** loading ******/
/*****载入中******/ /*****载入中******/
@ -3944,11 +3934,25 @@ html>body #ajax-indicator {
max-height: 340px; max-height: 340px;
}/*头部导航条样式---2018-03-19--by-cs*/ }/*头部导航条样式---2018-03-19--by-cs*/
.privateTag{
display: block;
padding:0px 6px;
border-radius: 12px;
border:1px solid #2FC25B;
height: 18px;
line-height: 18px;
font-size: 12px;
margin-left: 10px;
color: #2FC25B;
}
.privateTag.red{
color: #FF6832;
border:1px solid #FF6832;
}
.head-nav { .head-nav {
text-align: center; text-align: center;
height: 70px; height: 58px;
box-sizing: border-box; box-sizing: border-box;
min-width: 780px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
@ -3959,25 +3963,25 @@ html>body #ajax-indicator {
position: absolute; position: absolute;
top: 0px; top: 0px;
z-index: 3; z-index: 3;
height: 70px; height: 58px;
box-sizing: border-box; box-sizing: border-box;
} }
.head-nav ul#header-nav li { .head-nav ul#header-nav li {
float: left; float: left;
height: 70px; height: 58px;
line-height: 70px; line-height: 58px;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
font-size: 16px; font-size: 16px;
padding:0px 20px; padding-right:40px;
} }
.head-nav ul#header-nav li a { .head-nav ul#header-nav li a {
display: block; display: block;
height: 100%; height: 100%;
width: 100%; width: 100%;
color: #333; color: #fff;
font-size: 16px; font-size: 16px;
} }
@ -3989,10 +3993,6 @@ html>body #ajax-indicator {
margin-right: 0px margin-right: 0px
} }
.head-nav ul#header-nav li.active{
/* background-color: #3B3B3B; */
}
.head-nav ul#header-nav li p:hover { .head-nav ul#header-nav li p:hover {
color: #cccccc; color: #cccccc;
@ -6712,3 +6712,9 @@ p{
top:4px; top:4px;
color: #999; color: #999;
} }
.ant-input, .ant-input .ant-input-suffix{
background-color: #fff!important;
}
.has-error .ant-input{
background-color: #FEF1F0!important;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 733 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
public/favicon-.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
public/favicon.ico Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="zh-CN" class="notranslate translated-ltr" translate="no">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name=”Keywords” Content=”trustie,trustieforge,forge,确实让创建更美好,协同开发平台″> <meta name=”Keywords” Content=”trustie,trustieforge,forge,确实让创建更美好,协同开发平台″>

View File

@ -3319,9 +3319,9 @@
text = text.replace(emailReg, function ($1, $2, $3, $4) { text = text.replace(emailReg, function ($1, $2, $3, $4) {
return $1.replace(/@/g, "_#_&#64;_#_"); return $1.replace(/@/g, "_#_&#64;_#_");
}); });
// " + editormd.urls.atLinkBase + "" + $2 + "
text = text.replace(atLinkReg, function ($1, $2) { text = text.replace(atLinkReg, function ($1, $2) {
return "<a href=\"" + editormd.urls.atLinkBase + "" + $2 + "\" title=\"&#64;" + $2 + "\" class=\"at-link\">" + $1 + "</a>"; return "<span title=\"&#64;" + $2 + "\" class=\"at-link\"> " + $1 + " </span>";
}).replace(/_#_&#64;_#_/g, "@"); }).replace(/_#_&#64;_#_/g, "@");
} }

View File

@ -60,12 +60,13 @@ body {
.ant-progress-textno { .ant-progress-textno {
color: #f5222d; color: #f5222d;
} }
.CodeMirror pre.CodeMirror-line{
font-size: 16px!important;
}
/* md多空格 */ /* md多空格 */
.markdown-body p { .markdown-body p {
margin:10px 0px!important; margin:10px 0px!important;
font-size: 16px !important; font-size: 16px !important;
line-height: 2 !important;
white-space: pre-wrap; white-space: pre-wrap;
} }
@ -87,6 +88,13 @@ body {
border-left: 1px solid rgb(221, 221, 221); border-left: 1px solid rgb(221, 221, 221);
/* 某些情况下被cm盖住了 */ /* 某些情况下被cm盖住了 */
z-index: 99; z-index: 99;
padding:8px 8px 50px;
}
.editormd-preview .markdown-body{
padding:0px !important;
}
.editormd-preview{
width: 50%!important;
} }
/* 图片点击放大的场景,隐藏图片链接 */ /* 图片点击放大的场景,隐藏图片链接 */

View File

@ -3,24 +3,23 @@ import './App.css';
import { ConfigProvider } from 'antd' import { ConfigProvider } from 'antd'
import zhCN from 'antd/lib/locale-provider/zh_CN'; import zhCN from 'antd/lib/locale-provider/zh_CN';
import { import {
BrowserRouter as Router,
Route, Route,
Switch Switch
} from 'react-router-dom'; } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import LoginDialog from './modules/login/LoginDialog'; import LoginDialog from './modules/login/LoginDialog';
import 'babel-polyfill'; import 'babel-polyfill';
import Loading from './Loading' import Loading from './Loading';
import Loadable from 'react-loadable'; import Loadable from 'react-loadable';
import marked from './common/marked'; import marked from './common/marked';
import moment from 'moment' import moment from 'moment'
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles'; import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
import SiderBar from './forge/Component/SiderBar';
import SiderBarHelp from './glcc/siderBarHelp';
import history from './history'; import { SnackbarHOC } from 'educoder';
import { SnackbarHOC } from 'educoder'
import { initAxiosInterceptors } from './AppConfig' import { initAxiosInterceptors } from './AppConfig'
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import configureStore from './redux/stores/configureStore'; import configureStore from './redux/stores/configureStore';
@ -40,6 +39,16 @@ const Projects = Loadable({
loader: () => import('./forge/Index'), loader: () => import('./forge/Index'),
loading: Loading, loading: Loading,
}) })
// forge项目详情
const ProjectDetail = Loadable({
loader: () => import("./forge/Main/DetailAdaptor"),
loading: Loading,
});
//forge安全设置
const Security = Loadable({
loader: () => import('./forge/SecuritySetting/Index'),
loading: Loading,
})
//forge项目-devOps详情 //forge项目-devOps详情
const OpsDetail = Loadable({ const OpsDetail = Loadable({
loader: () => import('./forge/DevOps/opsDetail'), loader: () => import('./forge/DevOps/opsDetail'),
@ -70,10 +79,53 @@ const OrganizeIndex = Loadable({
loader: () => import('./forge/Team/Index'), loader: () => import('./forge/Team/Index'),
loading: Loading, loading: Loading,
}) })
const EducoderLogin = Loadable({
loader: () => import('./modules/login/EducoderLogin'), const Search = Loadable({
loader: () => import('./modules/search/'),
loading: Loading, loading: Loading,
}) })
const WikiPreview = Loadable({
loader: () => import('./forge/Wiki/Preview'),
loading: Loading,
})
const ProjectIndex = Loadable({
loader: () => import("./forge/Index"),
loading: Loading,
});
const Home = Loadable({
loader: () => import('./home/Index'),
loading: Loading,
})
const LoginRegisterPage = Loadable({
loader: () => import("./modules/loginRegister/LoginRegisterPage"),
loading: Loading,
});
const AboutUs = Loadable({
loader: () => import("./forge/AboutUs/AboutUs"),
loading: Loading,
})
const Teaching = Loadable({
loader : () => import("./forge/TeachingPractice/Teaching"),
loading: Loading,
})
const Glcc = Loadable({
loader : () => import("./glcc"),
loading: Loading,
})
// const CreateMerge = Loadable({
// loader: () => import('./forge/Merge/NewMerge'),
// loading: Loading,
// })
// 此处仅维护前端可能的一级路由,不用进行项目或者组织判断的字段。
const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize", "login", "register", "resetPassword", "aboutus","educoder"];
class App extends Component { class App extends Component {
constructor(props) { constructor(props) {
@ -84,6 +136,54 @@ class App extends Component {
mydisplay: false, mydisplay: false,
occupation: 0, occupation: 0,
mygetHelmetapi: null, mygetHelmetapi: null,
pathType: null,
pathName: null,
}
}
UNSAFE_componentWillMount() {
initAxiosInterceptors(this.props);
let pathname = window.location.pathname ? window.location.pathname.split('/')[1] : '';
pathname && this.getPathnameType(pathname);
// 添加路由监听,决定组织还是个人
this.unlisten = this.props.history.listen((location,history) => {
let newPathname = location.pathname.split('/')[1];
if (this.state.pathName !== newPathname) {
// this.setState({ pathType: '' });
newPathname && this.getPathnameType(newPathname);
}
});
}
shouldComponentUpdate(nextProps, nextState) {
if(!nextProps.location.pathname==='/'){
return true;
}
// 阻止个人与组织切换时组件渲染请求导致的404
if (nextProps.location.pathname.split('/')[1] !== this.props.location.pathname.split('/')[1] && nextState.pathType === this.state.pathType) {
return false;
} else {
return true;
}
}
getPathnameType = (pathname) => {
if (!keyWord.includes(pathname)) {
let url = `/owners/${pathname}.json`;
axios.get(url).then((response) => {
if (response && response.status === 200) {
this.setState({
pathType: response.data.type || '404',
pathName: pathname,
})
}
});
}else{
this.setState({
pathType: pathname,
pathName: pathname,
});
} }
} }
@ -100,43 +200,22 @@ class App extends Component {
Addcoursestypes: false Addcoursestypes: false
}) })
}; };
ModalCancelsy = () => {
this.setState({
mydisplay: false,
})
window.location.href = "/";
};
ModalshowCancelsy = () => {
this.setState({
mydisplay: true,
})
};
disableVideoContextMenu = () => {
window.$("body").on("mousedown", "video", function (event) {
if (event.which === 3) {
window.$('video').bind('contextmenu', function () { return false; });
} else {
window.$('video').unbind('contextmenu');
}
});
}
componentDidMount() { componentDidMount() {
document.title = "loading..."; document.title = "loading...";
this.disableVideoContextMenu();
history.listen(() => {
this.forceUpdate()
const $ = window.$
$("html").animate({ scrollTop: $('html').scrollTop() - 0 })
});
initAxiosInterceptors(this.props);
this.getAppdata(); this.getAppdata();
window.addEventListener('error', (event) => { window.addEventListener('error', (event) => {
const msg = `${event.type}: ${event.message}`; const msg = `${event.type}: ${event.message}`;
}); });
} }
componentWillUnmount() {
this.unlisten && this.unlisten(); // 执行解绑
}
//修改登录方法 //修改登录方法
Modifyloginvalue = () => { Modifyloginvalue = () => {
this.setState({ this.setState({
@ -207,23 +286,119 @@ class App extends Component {
}; };
render() { render() {
const { pathType, pathName } = this.state;
return ( return (
<Provider store={store}> <Provider store={store}>
<ConfigProvider locale={zhCN}> <ConfigProvider locale={zhCN}>
<MuiThemeProvider theme={theme}> <MuiThemeProvider theme={theme}>
<LoginDialog {...this.props} {...this.state} Modifyloginvalue={() => this.Modifyloginvalue()}></LoginDialog> <LoginDialog {...this.props} {...this.state} Modifyloginvalue={() => this.Modifyloginvalue()}></LoginDialog>
<Router> {pathName && pathName.indexOf("glcc") === -1 ? <SiderBar /> : <SiderBarHelp/>}
{/* <Router> */}
<Switch> <Switch>
{/* wiki预览 */}
<Route path="/:owner/:projectsId/wiki/preview/:projectName/:projectId" render={
(props) => {
return (<WikiPreview {...this.props} {...props} {...this.state} />)
}
} />
{/* 项目PR */}
<Route path="/:owner/:projectsId/compare"
render={
(props) => (<ProjectDetail {...this.props} {...props} {...this.state} />)
}
></Route>
{/*项目*/} {/*项目*/}
<Route <Route
path={"/projects/:owner/:projectId/devops/:opsId/detail"} path={"/:owner/:projectId/devops/:opsId/detail"}
render={ render={
(props) => { (props) => {
return (<OpsDetail {...this.props} {...props} {...this.state} />) return (<OpsDetail {...this.props} {...props} {...this.state} />)
} }
}> }>
</Route> </Route>
{/*项目*/} <Route
path={"/settings"}
render={
(props) => {
return (<Security {...this.props} {...props} {...this.state} />)
}
}>
</Route>
{/*403*/}
<Route path="/403" component={Shixunauthority} />
<Route path="/500" component={http500} />
{/*404*/}
<Route path="/nopage" component={Shixunnopage} />
{/* 查询 */}
<Route path="/search" component={Search} />
<Route exact path="/explore/all"
render={
(props) => (
<ProjectIndex {...this.props} {...props} />
)
}
/>
<Route exact path="/explore"
render={
(props) => (
<ProjectIndex {...this.props} {...props} />
)
}
/>
{/* 登录 */}
<Route
path="/login"
render={(props) =><LoginRegisterPage {...this.props} {...props}/>}
></Route>
{/* 注册 */}
<Route
path="/register"
render={(props) =><LoginRegisterPage {...this.props} {...props}/>}
></Route>
{/* 忘记密码 */}
<Route
path="/resetPassword"
render={(props) =><LoginRegisterPage {...this.props} {...props}/>}
></Route>
{/* 关于我们 */}
<Route
path = "/aboutus"
render = {(props)=><AboutUs {...this.props} {...props}/>}
></Route>
{/* 教学实践 */}
<Route
path="/educoder"
render={(props) => <Teaching {...this.props} {...props} />}
></Route>
{/*glcc */}
<Route
path="/glcc"
render={(props) => <Glcc {...this.props} {...props} />}
></Route>
{/* 组织 */}
<Route path={"/organize"}
render={
(props) => {
return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
}
}>
</Route>
{/*新建项目等*/}
<Route <Route
path={"/projects"} path={"/projects"}
render={ render={
@ -232,44 +407,44 @@ class App extends Component {
} }
}> }>
</Route> </Route>
<Route
path="/register" {/* 判断为用户/组织,并进入对应页面 */}
{
pathType === 'User' ?
<Route exact path="/:username"
render={ render={
(props) => { (props) => {
return (<EducoderLogin {...this.props} {...props} {...this.state} />) return (<InfosIndex {...this.props} {...this.state} />)
} }
} }
/> /> : pathType === 'Organization' ? <Route path={"/:OIdentifier"}
{/*403*/}
<Route path="/403" component={Shixunauthority} />
<Route path="/500" component={http500} />
<Route path={"/organize"}
render={ render={
(props) => { (props) => {
return (<OrganizeIndex {...props} {...this.props} {...this.state} />) return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
} }
}> }>
</Route> </Route> : pathType === '404' ? <Route component={Shixunnopage} />:
{/*404*/} ""
<Route path="/nopage" component={Shixunnopage} /> }
<Route exact path="/"
render={
(props) => (
<Home {...props} {...this.props} {...this.state}/>
)
}
/>
{/* 个人主页 */} {/* 个人主页 */}
<Route path="/users/:username" <Route path="/:username"
render={ render={
(props) => { (props) => {
return (<InfosIndex {...this.props} {...this.state} />) return (<InfosIndex {...this.props} {...this.state} />)
} }
}></Route> }></Route>
<Route exact path="/"
render={
(props) => (
<Projects {...this.props} {...props} {...this.state}></Projects>
)
}
/>
<Route component={Shixunnopage} /> <Route component={Shixunnopage} />
</Switch> </Switch>
</Router>
</MuiThemeProvider> </MuiThemeProvider>
</ConfigProvider> </ConfigProvider>
</Provider> </Provider>
@ -389,3 +564,4 @@ moment.defineLocale('zh-cn', {
} }
}); });
export default SnackbarHOC()(App); export default SnackbarHOC()(App);

View File

@ -32,11 +32,12 @@ export function initAxiosInterceptors(props) {
// 判断网络是否连接 // 判断网络是否连接
initOnlineOfflineListener(); initOnlineOfflineListener();
var proxy = "https://testforgeplus.trustie.net"; // var proxy = "https://testforgeplus.trustie.net";
var proxy = "http://localhost:3001";
//响应前的设置 //响应前的设置
axios.interceptors.request.use( axios.interceptors.request.use(
config => { config => {
if(config.url.indexOf("http") !== -1) { if(config.url.substr(0, 4) === "http") {
return config return config
} }
requestProxy(config); requestProxy(config);
@ -68,6 +69,8 @@ export function initAxiosInterceptors(props) {
if (response.data.status === -1) { if (response.data.status === -1) {
if (window.location.pathname.startsWith('/tasks/')) { if (window.location.pathname.startsWith('/tasks/')) {
props.showSnackbar(response.data.message || '服务器异常,请联系管理员。') props.showSnackbar(response.data.message || '服务器异常,请联系管理员。')
} else if(window.location.pathname.startsWith('/login') || window.location.pathname.startsWith('/register') || window.location.pathname.startsWith('/resetPassword')) {
return response;
} else { } else {
notification.open({ notification.open({
message: "提示", message: "提示",
@ -85,8 +88,11 @@ export function initAxiosInterceptors(props) {
} }
if (response.data.status === 404) { if (response.data.status === 404) {
let responseURL = response.request ? response.request.responseURL:'';
if (responseURL.indexOf('/api/users/') === -1 && responseURL.indexOf('/api/organizations/') === -1 ) {
locationurl('/nopage'); locationurl('/nopage');
} }
}
if (response.data.status === 500) { if (response.data.status === 500) {
locationurl('/500'); locationurl('/500');

View File

@ -9,20 +9,7 @@ class Loading extends Component {
} }
render() { render() {
return ( return ""
<div className="App" style={{ minHeight: '800px', width: "100%" }}>
<style>
{
`
.margintop{
margin-top:20%;
}
`
}
</style>
<Spin size="large" className={"margintop"} />
</div>
);
} }
} }

View File

@ -195,7 +195,7 @@ class College extends Component {
align: 'center', align: 'center',
className: "edu-txt-center font-14 maxnamewidth105", className: "edu-txt-center font-14 maxnamewidth105",
render: (text, record) => ( render: (text, record) => (
<a href={`/users/${record.login}`} title={record.name} target="_blank" className="task-hide maxnamewidth105" style={{ <a href={`/${record.login}`} title={record.name} target="_blank" className="task-hide maxnamewidth105" style={{
color:'#007bff', color:'#007bff',
}}> { }}> {

View File

@ -218,7 +218,7 @@ a:hover {
} }
.color-blue { .color-blue {
color: #4CACFF; color: #2A61FF;
} }
.color-huang { .color-huang {

View File

@ -1,4 +1,5 @@
import moment from "moment"; import moment from "moment";
import { number } from "prop-types";
// 处理整点 半点 // 处理整点 半点
// 取传入时间往后的第一个半点 // 取传入时间往后的第一个半点
@ -97,3 +98,41 @@ export function formatDuring(mss){
} }
return days + "天" + hours + "小时" + minutes + "分"; return days + "天" + hours + "小时" + minutes + "分";
} }
/*
返回多久以前
backDate以前的某个日期
*/
export function timeAgo(backDate) {
try {
moment(backDate);
} catch (e) {
return '刚刚';
}
if(typeof backDate ==='number'){
backDate=backDate*1000
}else{
backDate= moment(backDate);
}
let time = new Date() - backDate;
var days = Math.floor(time / (1000 * 60 * 60 * 24));
var hours = Math.floor((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((time % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((time % (1000 * 60 * 60)) / 1000);
if (time <= 0) {
return "刚刚";
}
if (days) {
return days + "天前";
}
if (hours) {
return hours + "小时前";
}
if (minutes) {
return minutes + "分前";
}
if (seconds) {
return seconds + "秒前";
}
return "刚刚";
}

View File

@ -69,7 +69,7 @@ export function appendFileSizeToUploadFile(item) {
} }
export function appendFileSizeToUploadFileAll(fileList) { export function appendFileSizeToUploadFileAll(fileList) {
return fileList.map(item => { return fileList.map(item => {
if (item.name.indexOf(uploadNameSizeSeperator) == -1) { if (item.name.indexOf(uploadNameSizeSeperator) === -1) {
return Object.assign({}, item, { name: `${item.name}${uploadNameSizeSeperator}${bytesToSize(item.size)}` }) return Object.assign({}, item, { name: `${item.name}${uploadNameSizeSeperator}${bytesToSize(item.size)}` })
} }
return item return item

View File

@ -18,6 +18,23 @@ export function getImageUrl(path) {
return `${path}`; return `${path}`;
} }
export function numFormat(num, digits){
let d = digits || 1;
var si = [
{ value: 1, symbol: "" },
{ value: 1E3, symbol: "k" },
{ value: 1E4, symbol: "W" }
];
var rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
var i;
for (i = si.length - 1; i > 0; i--) {
if (num >= si[i].value) {
break;
}
}
return (num / si[i].value).toFixed(d).replace(rx, "$1") + si[i].symbol;
}
export function getImage(path) { export function getImage(path) {
// https://www.educoder.net // https://www.educoder.net
// https://testbdweb.trustie.net // https://testbdweb.trustie.net
@ -233,3 +250,36 @@ export function publicSearchs(Placeholder,onSearch,onInputs,onChanges,loadings)
allowClear={true} allowClear={true}
></Search>) ></Search>)
} }
export function turnbar(str){
let s = str;
if(s && s.length>0){
if(s.indexOf("%")>-1){
s = s.replaceAll('%','_25');
}
if(s.indexOf("#")>-1){
s = s.replaceAll('#','%23');
}
if(s.indexOf("/")>-1){
s = s.replaceAll('/','%2F');
}
}
return s;
}
export function returnbar(str){
let s = str;
if(s && s.length>0){
if(str.indexOf("_25")>-1){
s = s.replaceAll('_25','%');
}
if(s.indexOf("%23")>-1){
s = s.replaceAll('%23','#');
}
if(s.indexOf("%2F")>-1){
s = s.replaceAll('%2F','/');
}
}
return s;
}

View File

@ -3,10 +3,11 @@
// export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil'; // export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil';
export { export {
getUploadLogoActionUrl as getUploadLogoActionUrl, getUploadLogoActionUrl as getUploadLogoActionUrl,numFormat as numFormat,
getImageUrl as getImageUrl,getImage as getImage, getmyUrl as getmyUrl, getRandomNumber as getRandomNumber, getUrl as getUrl, publicSearchs as publicSearchs, getRandomcode as getRandomcode, getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl getImageUrl as getImageUrl,getImage as getImage, getmyUrl as getmyUrl, getRandomNumber as getRandomNumber, getUrl as getUrl, publicSearchs as publicSearchs, getRandomcode as getRandomcode, getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl
, getUploadActionUrl as getUploadActionUrl, getUploadActionUrltwo as getUploadActionUrltwo, getUploadActionUrlthree as getUploadActionUrlthree, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth , getUploadActionUrl as getUploadActionUrl, getUploadActionUrltwo as getUploadActionUrltwo, getUploadActionUrlthree as getUploadActionUrlthree, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth
, getTaskUrlById as getTaskUrlById, TEST_HOST, htmlEncode as htmlEncode, getupload_git_file as getupload_git_file, getcdnImageUrl as getcdnImageUrl , getTaskUrlById as getTaskUrlById, TEST_HOST, htmlEncode as htmlEncode, getupload_git_file as getupload_git_file, getcdnImageUrl as getcdnImageUrl,
turnbar,returnbar
} from './UrlTool'; } from './UrlTool';
export { setmiyah as setmiyah } from './Component'; export { setmiyah as setmiyah } from './Component';
@ -27,7 +28,7 @@ export {
markdownToHTML, uploadNameSizeSeperator, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll, isImageExtension, markdownToHTML, uploadNameSizeSeperator, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll, isImageExtension,
downloadFile, sortDirections, validateLength, mdJSONParse, exportMdtoHtml downloadFile, sortDirections, validateLength, mdJSONParse, exportMdtoHtml
} from './TextUtil' } from './TextUtil'
export { handleDateString, getNextHalfHourOfMoment, formatDuring, formatSeconds } from './DateUtil' export { handleDateString, getNextHalfHourOfMoment, formatDuring, formatSeconds ,timeAgo} from './DateUtil'
export { configShareForIndex, configShareForPaths, configShareForShixuns, configShareForCourses, configShareForCustom } from './util/ShareUtil' export { configShareForIndex, configShareForPaths, configShareForShixuns, configShareForCourses, configShareForCustom } from './util/ShareUtil'

View File

@ -30,7 +30,7 @@ export default ({
cleanToc() cleanToc()
} }
rs = rs.replace(/(__special_katext_id_\d+__)/g, (_match, capture) => { rs = rs.replace(/(__special_katext_id_\d+__)/g, (_match, capture) => {
const { type, expression } = math_expressions[capture] const { type, expression } = math_expressions[capture];
return renderToString(_unescape(expression) || '', { displayMode: type === 'block', throwOnError: false, output: 'html' }) return renderToString(_unescape(expression) || '', { displayMode: type === 'block', throwOnError: false, output: 'html' })
}) })
rs = rs.replace(/▁/g, "▁▁▁") rs = rs.replace(/▁/g, "▁▁▁")
@ -46,18 +46,18 @@ export default ({
let id = decodeURIComponent(u.split("#")[1]); let id = decodeURIComponent(u.split("#")[1]);
let ele = document.getElementById(id); let ele = document.getElementById(id);
if(ele){ if(ele){
window.scrollTo(0, ele.offsetTop + 220); window.scrollTo(0, ele.offsetTop + 120);
} }
} }
} }
},[url]) },[url,html])
const el = useRef(); const el = useRef();
function onAncherHandler(e) { function onAncherHandler(e) {
let target = e.target let target = e.target;
if (target.tagName.toUpperCase() === 'A') { if (target.tagName.toUpperCase() === 'A') {
let ancher = target.getAttribute('href') let ancher = target.getAttribute('href');
if (ancher.startsWith('#')) { if (ancher && ancher.startsWith('#')) {
e.preventDefault() e.preventDefault()
let viewEl = document.getElementById(ancher.replace('#', '')) let viewEl = document.getElementById(ancher.replace('#', ''))
if (viewEl) { if (viewEl) {

View File

@ -435,11 +435,11 @@ class TPIContextProvider extends Component {
image_url: "avatars/User/1" image_url: "avatars/User/1"
login: "innov" login: "innov"
name: "Coder" name: "Coder"
user_url: "/users/innov" user_url: "/innov"
*/ */
let user = resData.user; let user = resData.user;
user.username = resData.user.name; user.username = resData.user.name;
user.user_url = `/users/${resData.user.login}`; user.user_url = `/${resData.user.login}`;
// user.image_url = resData.image_url; // user.image_url = resData.image_url;
user.is_teacher = resData.is_teacher; user.is_teacher = resData.is_teacher;
resData.user = user; resData.user = user;

View File

@ -0,0 +1,280 @@
import React , { useEffect , useState } from 'react';
import { TPMIndexHOC} from '../../modules/tpm/TPMIndexHOC';
import { Timeline, Carousel } from 'antd';
import { getImageUrl } from 'educoder';
import CountUp from 'react-countup';
import axios from 'axios';
import './AboutUs.scss';
import subititle from './image/subtitle.png';
import achievements from './image/achievements.png';
import earth from './image/earth.png';
import computer from './image/computer.png';
import position from './image/position.png';
import quan1 from './image/quan1.png';
import quan2 from './image/quan2.png';
import fun1 from './image/fun1.png';
import fun2 from './image/fun2.png';
import fun3 from './image/fun3.png';
import fun4 from './image/fun4.png';
import fun5 from './image/fun5.png';
function AboutUs(){
const countUpProps = {
redraw: true,
start: 0,
duration: 2,
suffix: "+"
};
const [selectTitle, setSelectTitle] = useState(1);
//
const [flush, setFlush] = useState(false);
//
const [units, setUnits] = useState([]);
useEffect(()=>{
//
window.addEventListener('scroll', scrollListener);
//topics.json
axios.get(`/topics.json`, { params: { topic_type: "cooperator", limit: 20, group_size: 5}}).then(response=>{
response && setUnits(response.data.topics);
});
return ()=>window.removeEventListener('scroll', scrollListener);
},[])
function scrollListener(e){
const top = e.srcElement.scrollingElement.scrollTop;
//
top < 555 && setSelectTitle(1);
if (top > 2800 && top< 4000){
setFlush(true);
}else{
setFlush(false);
}
}
return(
<div className="aboutUs_body">
<div className="aboutUs_head df">
<p className="head_title">GitLink 确实开源</p>
<p className="head_cont font-20 mt36">新一代开源创新服务平台让您的创意在这里释放</p>
</div>
<div className="aboutUs_title df">
<a className={selectTitle === 1 ? "active" : ""} href="#value1" onClick={() => setSelectTitle(1)}>关于我们</a>
<a className={selectTitle === 2 ? "active" : ""} href="#value2" onClick={() => setSelectTitle(2)}>平台统计</a>
<a className={selectTitle === 3 ? "active" : ""} href="#value3" onClick={() => setSelectTitle(3)}>加入我们</a>
<a className={selectTitle === 4 ? "active" : ""} href="#value4" onClick={() => setSelectTitle(4)}>合作单位</a>
</div>
<div className="aboutUs">
<a id="value1" className="mao"></a>
{/* 关于我们 */}
<div className="about_us">
<div className="au_bg">
<div className="au_title">关于我们</div>
{/* 简介 */}
<div className="au_cont subt df">
<div className="cont1_introduction">
<p className="subtitle">简介</p>
<div className="font-16">GitLink确实开源是CCF官方指定的开源创新服务平台旨在以为开源创新服务为使命成为开源创新的汇聚地为愿景秉承创新开放协作共享的价值观致力于为大规模开源开放协同创新助力赋能打造创新成果孵化和新工科人才培养的开源创新生态</div>
</div>
<img src={subititle} className="subtitleImg"></img>
</div>
</div>
{/* 确实开源 一脉传承 */}
<div className="au_cont inherit pl30">
<p className="subtitle">确实开源&nbsp;&nbsp;一脉传承</p>
<div>本世纪以来随着软件创新需求和应用规模的飞速增长软件开发队伍开发资源可信评估呈现出规模化开放化持续化的新特点软件开发活动面临协同难复用难评估难的制约经典的工程化软件开发方法面临严峻挑战严重影响了软件开发效率和质量的提升在此背景下国防科技大学联合国内多所知名高校科研机构和软件企业围绕开源创新开展了持续性探索构建形成了以Trustie确实为代表的一系列开源创新服务基础设施自2006年以来Trustie经过三个阶段的演化发展于2021年迎来全面升级在中国计算机学会CCF的带领指导下共同推进产学研用深度融合共筑新一代开源创新服务平台GitLink</div>
<div className="inherit_items">
<img src={quan1} className="quan1Img"/>
<img src={quan2} className="quan2Img"/>
<Timeline>
<Timeline.Item dot={<i className="iconfont icon-a-yuanquan2x font-20"></i>}>
<div className="timeline_cont">
<p>Trustie 1.0阶段2006-2014</p>
<div>国防科技大学北京大学北京航空航天大学中国科学院软件研究所等单位合作开展了基于网络的软件开发群体化方法与技术研究揭示了以大众化协同开发开放式资源共享持续性可信评估为核心的互联网大规模协同机理与软件开发工程化方法相结合系统地提出了基于网络的软件开发群体化方法并于2008年发布了可信的国家软件资源共享与协同生产环境简称Trustie v1.0中文简称确实重点解决大规模软件协同开发可信评估运行监控和持续演化等问题</div>
</div>
</Timeline.Item>
<Timeline.Item dot={<i className="iconfont icon-a-yuanquan2x"></i>}>
<div className="timeline_cont">
<p>Trustie 2.0阶段2014-2020</p>
<div>在科技部项目的持续资助下国防科技大学联合国内多所知名高校科研机构和软件企业致力于系统研究新型软件开发方法为开源生态建设提供方法指导和实践指南支撑科教领域原始创新成果的开源孵化和开源人才培养并于2014年发布了面向软件创新和教育的开源社区Trustie v2.0重点探索协作开发社区知识分享社区应用服务社区等大外围软件涉众的联接以及基于开源大数据的智能化开发等技术</div>
</div>
</Timeline.Item>
<Timeline.Item dot={<i className="iconfont icon-a-yuanquan2x"></i>}>
<div className="timeline_cont">
<p>Trustie 3.0阶段 (2020年至今)</p>
<div>Trustie在已有的技术积累基础上进一步联合国内高等院校科研机构产业企业和开源组织等在中国计算机学会CCF的带领指导下共同推进产学研用深度融合致力于联接互联网海量群智资源探索开源创新成果开放与共享开源生态协作与共建的新模式和新方法升级形成了新一代开源创新服务平台GitLink力图破解软件开发群智范式背后的本质机理建立面向大外围开放创新的群智激发与汇聚关键机制实现面向大规模软件涉众的稳态群智激发与汇聚</div>
</div>
</Timeline.Item>
</Timeline>
</div>
</div>
{/* 特色功能 确实给力 */}
<div className="feature_function_bg">
<div className="au_cont">
<p className="au_title">特色功能&nbsp;&nbsp;确实给力</p>
<table><tr>
<td>
<div className="feat_func_cont">
<div className="feat_fun_img"><img src={fun1} /></div>
<div>
<p>分布式协作开发</p>
<div>支持在线文件编辑&nbsp;&nbsp;<br />分支管理贡献统计<br />仓库复刻合并请求&nbsp;&nbsp;&nbsp;</div>
</div>
</div>
</td>
<td>
<div className="feat_func_cont">
<div className="feat_fun_img"><img src={fun2} /></div>
<div>
<p>一站式过程管理</p>
<div>支持疑修里程碑&nbsp;&nbsp;&nbsp;<br />通知提醒标签归档Wiki文档组织管理&nbsp;&nbsp;&nbsp;</div>
</div>
</div>
</td>
<td>
<div className="feat_func_cont">
<div className="feat_fun_img"><img src={fun3} /></div>
<div>
<p>高效流水线运维</p>
<div>提供轻量级工作流引擎<br />并支持自定义配置&nbsp;&nbsp;&nbsp;<br/>静态扫描制品构建&nbsp;&nbsp;&nbsp;</div>
</div>
</div>
</td>
<td>
<div className="feat_func_cont">
<div className="feat_fun_img"><img src={fun4} /></div>
<div>
<p>多层次代码分析</p>
<div>支持代码溯源分析&nbsp;&nbsp;&nbsp;<br />许可证风险分析开源漏洞检测和加固建议&nbsp;&nbsp;&nbsp;</div>
</div>
</div>
</td>
<td>
<div className="feat_func_cont">
<div className="feat_fun_img"><img src={fun5} /></div>
<div>
<p>多维度用户画像</p>
<div>支持开发活动统计&nbsp;&nbsp;&nbsp;<br />贡献日历能力建模<br />角色与专业定位分析&nbsp;&nbsp;&nbsp;</div>
</div>
</div>
</td>
</tr></table>
</div>
</div>
{/* 成果作用,确实有效 */}
<div className="au_cont df pl30">
<img src={achievements} className="achievementsImg"></img>
<div className="cont1_achievements">
<p className="subtitle ml0">成果作用&nbsp;&nbsp;确实有效</p>
<div>GitLink确实开源为我国创新型软件产业发展提供了关键技术支撑和实践指南为各类开源创新活动以及我国军地开源社区建设提供了有效支撑为推动开源创新发展和创新人才培养发挥了重要作用<br/>通过10多年的发展GitLink平台显著提升了大型软件企业软件生产能力支持了我国航空航天国防等多个关键领域的可信软件生产为包括新一代人工智能启智社区ARM绿色计算社区科技部云计算与大数据木兰社区科技委可控开源创造行动红山社区等的建设提供关键技术支撑为我国关键领域开源社区生态建设发挥了重要作用</div>
</div>
</div>
</div>
{/* 平台统计 */}
<div className="about_us statistics">
<a id="value2" className="mao"></a>
<div className="au_title">平台统计</div>
<p>联接海量群智资源汇聚优秀开源组织孵化优质创新成果</p>
<img src={earth} className="earthImg"/>
<div className="statistics_cont df">
<div>
<CountUp {...countUpProps} start={0} end={50000} />
<p>开发者</p>
</div>
<div>
<CountUp {...countUpProps} end={1000} />
<p>组织</p>
</div>
<div>
<CountUp {...countUpProps} end={1400000} />
<p>仓库</p>
</div>
</div>
</div>
{/* 加入我们 */}
<div className="join_us_bg">
<a id="value3" className="mao"></a>
<div className="au_cont">
<div className="au_title">加入我们</div>
<p className="subtitle">探索你的未来</p>
<p>GitLink团队在寻找新的小伙伴期待着您的加入让我们一起为开源创新贡献力量</p>
<img src={computer} className="joinUsImg"/>
{/* 轮播图 */}
<Carousel autoplay easing="none">
<div className="df">
<div className="position">
<p className="df"><img src={position} /><span className="ml10">前端开发工程师</span></p>
<div>
1全日制本科及以上学历5年以上Web前端开发经验熟练使用GulpWebpack等构建工具<br />
2熟练掌握VUE或React编程有前端模块化组件化自动化开发经验者优先<br />
3精通jQueryAjaxJson等技术对VUENodeJs等技术有所涉及<br />
4熟悉前端开发技术(HTML5JSJSONXHTMLCSS3ES6)了解各项技术的相关标准并严格按照标准进行开发<br />
</div>
</div>
<div className="position right">
<p className="df"><img src={position} /><span className="ml10">后端开发工程师</span></p>
<div>
1全日制本科及以上学历计算机软件工程相关专业者优先<br />
23年以上Java开发相关经验扎实的Java编程基础参与过1个以上大/中型高并发高性能系统架构设计开发和调优<br />
3熟练掌握SpringSpringBootSpring MVCMyBatis等开源框架掌握MVC框架模式及BS架构<br />
4精通SQL熟练使用MySQLOracle等数据库并具有一定的SQL优化能力熟悉RedisMongoDB等常用NoSQL解决方案了解各自的优缺点以及使用场景者优先<br />
</div>
</div>
</div>
<div className="df">
<div className="position">
<p className="df"><img src={position} /><span className="ml10">软件测试工程师</span></p>
<div>
1熟悉主流开发技术框架具备软件工程的基本知识<br />
2熟练掌握各种测试理论和测试技术精通测试过程设计和用例设计方法<br />
3熟悉性能测试自动化测试安全测试其中一种或多种测试工具LoadRunnerJmeterSeleniumQTPRobotFirebugAppScanPyCharm等熟练运用工具从事过相关测试工作<br />
4熟悉掌握一种编程语言Java/Python/C++<br />
5熟悉Oracle/MySQL数据库并能熟练编写SQL语句熟练常用Linux命令<br />
6有整体质量意识测试管理经验<br />
</div>
</div>
<div className="position right">
<p className="df"><img src={position} /><span className="ml10">产品经理</span></p>
<div>
1计算机或相关专业本科以上学历3年以上工作经验<br />
2熟悉开源软件项目的管理流程了解软件需求的调研方法具备需求分析能力<br />
3能以专业的方式向客户提供技术咨询良好的方案设计能力和文字功底<br />
4具备良好的交流沟通和表达能力良好的方案演示和介绍技巧<br />
5了解互联网产品的基本思路及基础方法论能够基于数据提出产品优化策略<br />
6承受较强的工作压力强烈的团队合作意识与工作责任心<br />
7有良好人际交往能力工作积极主动自信心强有较强的学习能力<br />
</div>
</div>
</div>
</Carousel>
<p className="delivery">简历投递邮箱zengyt#csxjy.com.cn 曾先生 (@符号替换#)</p>
</div>
</div>
{/* 合作单位 */}
<div className="unit">
<a id="value4" className="mao"></a>
<div className="au_title">合作单位</div>
<table>
{units && units.map(group =>{
return (
<tr>
{group.map(item =>{
return(
<td><a href={item.url} target="_blank"><img src={getImageUrl(item.image)}></img></a></td>
)
})}
</tr>
)
})}
</table>
</div>
</div>
</div>
)
}
export default TPMIndexHOC(AboutUs);

View File

@ -0,0 +1,338 @@
.aboutUs_body{
font-size: 16px;
color: #182332;
font-family: PingFangSC-Regular, PingFang SC;
& table{
text-align: center;
margin: 0 auto;
}
& .df{
display: flex;
justify-content: space-around;
align-items: center;
}
& .join_us_bg, .feature_function_bg, .feat_fun_img, .aboutUs_head{
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
& .mao{
position: relative;
top: -70px;
}
}
.aboutUs_head.df{
flex-direction: column;
justify-content: center;
height: 500px;
line-height: 500px;
background-image: url('./image/banner.png');
& p{
text-align: center;
}
& .head_title{
line-height: 50px;
font-size: 48px;
font-weight: 600;
background-image: -webkit-linear-gradient(bottom,#4CDBF5,#5AACFF);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
& .head_cont{
line-height: 39px;
color: #FFFFFF;
opacity: 0.9;
}
}
.aboutUs_title{
width: 800px;
height: 62px;
margin: 0 auto;
&>table{
width: 800px;
font-weight: 400;
}
& a.active{
color: #466AFF;
height: 62px;
line-height: 62px;
border-bottom: 2px solid;
}
}
.aboutUs{
& .au_title{
font-size: 38px;
font-weight: 500;
color: #1E1E1E;
text-align: center;
padding-top: 50px;
// line-height: 53px;
}
& .subtitle{
font-size: 20px;
font-weight: bold;
color: #000000;
margin-bottom: 23px !important;
}
}
.about_us{
// 关于我们
& .au_cont.df{
justify-content: space-between;
}
& .au_bg{ background: linear-gradient(180deg, #F3F9FF 0%, rgba(255, 255, 255, 0) 100%);}
& .cont1_introduction{
width: 472px;
&>div{
line-height: 34px;
}
}
& .cont1_achievements{
width: 581px;
& .subtitle.ml0{margin-left: 0;}
&>div{
font-size: 15px;
line-height: 36px;
}
}
& .subtitleImg{
width: 650px;
height: 330px;
}
& .achievementsImg{
width: 507px;
height: 384px;
}
//时间轴
& .inherit_items{
position: relative;
& .quan1Img{
width: 140px;
height: 167px;
position: absolute;
left: -290px;
top: 90px;
}
& .quan2Img{
width: 100px;
height: 120px;
position: absolute;
right: -170px;
bottom: 80px;
}
}
.inherit{
& .icon-a-yuanquan2x{
color: #466aff;
}
& .ant-timeline-item-tail{
border-left: 2px solid rgba(108, 134, 172, 0.42);
height: calc(100% - -30px);
}
& .ant-timeline-item:last-child .ant-timeline-item-tail{
display: block;
height: calc(100% - 18px);
}
& .ant-timeline-item-content{
margin: 0 0 -15px 18px;
}
}
.timeline_cont{
margin-left: 35px;
&>p{
font-size: 20px;
font-weight: 500;
color: #466AFF;
margin: 45px 0 30px !important;
}
&>div{
width: 980px;
padding: 20px 35px;
background: #F5F7FA;
font-size: 15px;
font-weight: 400;
color: #182332;
line-height: 33px;
&:after,&:before{
content: "";
position: absolute;
left: 21px;
top: 100px;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
border-right: 14px solid #F5F7FA;
}
}
}
//特色功能 确实给力
& .feature_function_bg{
position: relative;
height: 630px;
background-image: url(./image/funBg.png);
& .au_cont p.au_title{
font-size: 30px;
padding: 50px 0 70px;
color: #FFFFFF;
opacity: 0.9;
}
& table{
position: relative;
background: none;
width: 1200px;}
& .funBg2 {
width: 1600px;
left: 50%;
margin-left: -800px;
position: absolute;
bottom: -15px;
}
}
& .feat_func_cont{
width: 200px;
& .feat_fun_img{
height: 205px;
line-height: 205px;
background-image: url('./image/funBg3.png');
&:hover{background-image: url('./image/funBg4.png');}
}
& img{ width: 175px;}
& p{
font-size: 18px;
font-weight: 500;
color: #FFFFFF;
line-height: 28px;
background-image: -webkit-linear-gradient(bottom,#4FFDFF,#0183FF);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
& div>div{
margin: 10px auto;
width: 142px;
font-size: 14px;
line-height: 28px;
color: #FFFFFF;
opacity: 0.76;
}
}
// 平台统计
&.statistics{
text-align: center;
background: linear-gradient(180deg, #ECF3FF 0%, #FFFFFF 100%);
height: 640px;
overflow: hidden;
position: relative;
& .statistics_cont{
width: 1014px;
height: 203px;
background: #FFFFFF;
opacity: 0.83;
position: absolute;
top: 230px;
left: 50%;
margin-left: -500px;
& span{
font-size: 48px;
font-weight: bold;
color: #1338D1;
}
& p{
width: 111px;
height: 38px;
line-height: 38px;
border: 1px solid #182332;
margin: 0 auto;
font-size: 22px;
color: #1E1E1E;
}
}
& .earthImg{
width: 1500px;
margin-top: -120px;
animation: moving 60s linear infinite;
}
@keyframes moving {
0% { transform: rotate(0deg);}
50% { transform: rotate(180deg);}
100% { transform: rotate(360deg);}
}
}
}
// 加入我们
.join_us_bg{
height: 710px;
margin-top: 40px;
background-image: url(./image/joinUs.png);
& .au_cont{position: relative;}
& .joinUsImg{
width: 260px;
height: 265px;
position: absolute;
top: 27px;
right: 10px;
}
& .df{
display: flex !important;
margin-top: 30px;
}
& .position{
width: 540px;
&.right{ margin-right: -30px;}
& p{
justify-content: flex-start;
height: 60px;
background: #253DA0;
line-height: 60px;
padding-left: 20px;
& img{width: 30px;}
& span{
font-weight: 500;
color: #FFFFFF;
line-height: 22px;
}
}
& div{
min-height: 306px;
font-size: 14px;
line-height: 34px;
padding: 20px;
background: #FFFFFF;}
}
& .ant-carousel .slick-dots-bottom{bottom: -30px;}
& .ant-carousel .slick-dots li button{
width: 12px;
height: 12px;
border-radius: 10px;
background: #466AFF;
}
& .delivery{
height: 60px;
line-height: 60px;
margin-left: 35px;
}
}
//合作单位
.unit{
margin-bottom: 60px;
& table{
width: 1200px;
height: 550px;
margin-top: 15px;
border-collapse: separate;
border-spacing: 10px 10px;
& td{
width: 224px;
height: 122px;
box-shadow: 0px 1px 8px 1px rgba(0, 0, 0, 0.06);
border-radius: 6px;
border: 2px solid #FFFFFF;
&:hover{ border: 1px solid #466AFF;}
}
}
}
.au_cont{
width: 1200px;
margin: 50px auto;
&.pl30 .subtitle{ margin-left: -30px;}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View File

@ -1,7 +1,7 @@
import React , { Component } from 'react'; import React , { Component } from 'react';
import { Dropdown , Menu , Icon , Pagination , Spin } from 'antd'; import { Dropdown , Menu , Icon , Pagination , Spin } from 'antd';
import '../css/index.scss'; import '../css/index.scss';
import '../Branch/branch.css'; import '../Branch/branch.scss';
import './activity.css'; import './activity.css';
import NoneData from '../Nodata'; import NoneData from '../Nodata';
@ -10,6 +10,10 @@ import ActivityItem from './ActivityItem';
import axios from 'axios'; import axios from 'axios';
const LIMIT = 15; const LIMIT = 15;
const ARRAY = [ const ARRAY = [
{
id:"",
name:'全部'
},
{ {
id:1, id:1,
name:'1天' name:'1天'
@ -32,10 +36,15 @@ class Activity extends Component{
constructor(props){ constructor(props){
super(props); super(props);
this.state={ this.state={
time:'30', time:undefined,
type:undefined, type:undefined,
state:undefined, state:undefined,
page:1, page:1,
pr_count:undefined,
new_pr_count:undefined,
close_issues_count:undefined,
open_issues_count:undefined,
pr_all_count:undefined,issues_count:undefined,
data:undefined, data:undefined,
project_trends:undefined, project_trends:undefined,
@ -63,8 +72,15 @@ class Activity extends Component{
this.setState({ this.setState({
data:result.data, data:result.data,
project_trends:result.data.project_trends, project_trends:result.data.project_trends,
isSpin:false isSpin:false,
pr_count:result.data.pr_count,
new_pr_count:result.data.new_pr_count,
close_issues_count:result.data.close_issues_count,
open_issues_count:result.data.open_issues_count,
pr_all_count:result.data.pr_all_count,
issues_count:result.data.issues_count,
}) })
window.scrollTo(0,0);
} }
}).catch(error=>{ }).catch(error=>{
console.log(error); console.log(error);
@ -74,19 +90,19 @@ class Activity extends Component{
// 切换周期 // 切换周期
changeTime=(e)=>{ changeTime=(e)=>{
this.setState({ this.setState({
time:e.key, time:e.key ==="item_0"?undefined:e.key,
isSpin:true isSpin:true
}) })
const { type,status,page } = this.state; const { type,status,page } = this.state;
this.getInfo(e.key,type,status,page); this.getInfo(e.key ==="item_0"?undefined:e.key,type,status,page);
} }
//筛选 //筛选
changeTrends=(type,status)=>{ changeTrends=(type,status)=>{
this.setState({ this.setState({
type,status type,status,page:1
}) })
const {time,page}=this.state; const {time}=this.state;
this.getInfo(time,type,status,page); this.getInfo(time,type,status,1);
} }
// 分页 // 分页
ChangePage=(page)=>{ ChangePage=(page)=>{
@ -108,12 +124,16 @@ class Activity extends Component{
</Menu> </Menu>
) )
render(){ render(){
const { time , data , page , project_trends , isSpin } = this.state; const { time , data , page , project_trends , isSpin ,
pr_count , new_pr_count , close_issues_count , open_issues_count , pr_all_count ,issues_count,
type,status } = this.state;
let name = time ? ARRAY.filter(item=>item.id === parseInt(time)) :[{name:"全部"}];
const first_per = pr_all_count > 0 ? `${parseFloat(pr_count/pr_all_count).toFixed(2)*100}%` :"50%";
const second_per =pr_all_count > 0 ? `${parseFloat(new_pr_count/pr_all_count).toFixed(2)*100}%` :"50%";
const third_per =issues_count > 0 ?`${parseFloat(close_issues_count/issues_count).toFixed(2)*100}%` :"50%";
const fourth_per =issues_count > 0 ?`${parseFloat(open_issues_count/issues_count).toFixed(2)*100}%` :"50%";
let name = time && ARRAY.filter(item=>item.id === parseInt(time)) ;
const second_per = (parseInt(data && data.close_issues_count)/parseInt(data && data.issues_count)*100)+'%';
const third_per = (parseInt(data && data.close_issues_count)/parseInt(data && data.issues_count)*100)+'%';
const fourth_per = (parseInt(data && data.open_issues_count)/parseInt(data && data.issues_count)*100)+'%';
return( return(
<div className="main"> <div className="main">
@ -122,7 +142,7 @@ class Activity extends Component{
<div className="orderInfo"> <div className="orderInfo">
<div> <div>
<div className="percentLine prPercent"> <div className="percentLine prPercent">
<p className="percent_purple" style={{width:'100%'}}></p> <p className="percent_purple" style={{width:first_per}}></p>
<p className="percent_green resetStyle" style={{width:`${second_per}`}}></p> <p className="percent_green resetStyle" style={{width:`${second_per}`}}></p>
</div> </div>
<span>{data && data.pr_all_count}合并请求</span> <span>{data && data.pr_all_count}合并请求</span>
@ -132,25 +152,25 @@ class Activity extends Component{
<p className="percent_red" style={{width:`${third_per}`}}></p> <p className="percent_red" style={{width:`${third_per}`}}></p>
<p className="percent_green" style={{width:`${fourth_per}`}}></p> <p className="percent_green" style={{width:`${fourth_per}`}}></p>
</div> </div>
<span>{data && data.issues_count}任务</span> <span>{data && data.issues_count}疑修</span>
</div> </div>
</div> </div>
<ul className="percentBox"> <ul className="percentBox">
<li> <li>
<span className="purple">{data && data.pr_count}</span> <span className="purple">{data && data.pr_count}</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","close")}>已处理的合并请求</span> <span className={type==="PullRequest" && status==="delay" ?`change active`:"change"} onClick={()=>this.changeTrends("PullRequest","delay")}>已处理的合并请求</span>
</li> </li>
<li> <li>
<span className="green">{data && data.new_pr_count}</span> <span className="green">{data && data.new_pr_count}</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","create")}>未处理的合并请求</span> <span className={type==="PullRequest"&& status==="not_delay" ?`change active`:"change"} onClick={()=>this.changeTrends("PullRequest","not_delay")}>未处理的合并请求</span>
</li> </li>
<li> <li>
<span className="red">{data && data.close_issues_count}</span> <span className="red">{data && data.close_issues_count}</span>
<span className="change" onClick={()=>this.changeTrends("Issue","close")}>已关闭的任务</span> <span className={type==="Issue"&& status==="delay" ?`change active`:"change"} onClick={()=>this.changeTrends("Issue","delay")}>已关闭的疑修</span>
</li> </li>
<li> <li>
<span className="green">{data && data.open_issues_count}</span> <span className="green">{data && data.open_issues_count}</span>
<span className="change" onClick={()=>this.changeTrends("Issue","create")}>未处理的任务</span> <span className={type==="Issue"&& status==="not_delay" ?`change active`:"change"} onClick={()=>this.changeTrends("Issue","not_delay")}>未处理的疑修</span>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -14,25 +14,25 @@ class ActivityItem extends Component {
{/* 如果是版本发布 */} {/* 如果是版本发布 */}
{item.trend_type === "VersionRelease" ? {item.trend_type === "VersionRelease" ?
<p className="itemLine"> <p className="itemLine">
<Link to={`/projects/${owner}/${projectsId}/version`} className="color-blue font-16">{item.name}</Link> <Link to={`/${owner}/${projectsId}/releases`} className="font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span> <span className="activity_type">{item.trend_type}</span>
</p > </p >
: :
// 如果是任务 // 如果是任务
item.trend_type === "Issue" ? item.trend_type === "Issue" ?
<p className="itemLine"> <p className="itemLine">
<Link to={`/projects/${owner}/${projectsId}/issues/${item.trend_id}/detail`} className="color-blue font-16">{item.name}</Link> <Link to={`/${owner}/${projectsId}/issues/${item.trend_id}`} className="font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span> <span className="activity_type">{item.trend_type}</span>
</p > </p >
: :
// 如果是合并请求 // 如果是合并请求
<p className="itemLine"> <p className="itemLine">
<Link to={`/projects/${owner}/${projectsId}/pulls/${item.trend_id}/Messagecount`} className="color-blue font-16">{item.name}</Link> <Link to={`/${owner}/${projectsId}/pulls/${item.trend_id}`} className="font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span> <span className="activity_type">{item.trend_type}</span>
</p > </p >
} }
<p className="itemLine mt10"> <p className="itemLine mt10">
<Link to={`/users/${item && item.user_login}`} className="show-user-link"> <Link to={`/${item && item.user_login}`} className="show-user-link">
<img alt="" src={getImageUrl(`/${item.user_avatar}`)} className="createImage" /> <img alt="" src={getImageUrl(`/${item.user_avatar}`)} className="createImage" />
<span className="mr20">{item.user_name}</span> <span className="mr20">{item.user_name}</span>
</Link> </Link>

View File

@ -107,6 +107,10 @@
color: black; color: black;
cursor: pointer; cursor: pointer;
} }
.change:hover{ .change.active{
color: #4183c4; color: #466AFF !important;
}
.change:hover{
color: #466AFF;
} }

View File

@ -0,0 +1,119 @@
import React , { useState , useEffect } from 'react';
import { Spin } from 'antd';
import { Blueback } from '../Component/layout';
import Editor from "react-monaco-editor";
import Modals from './DisposeModal';
import FileLanguage from '../Component/OpsFileLanguage';
import axios from 'axios';
function Dispose(props){
const [ spining , setSpining ] = useState(true);
const [ info , setInfo ] = useState('.trustie-pipeline.yml');
const [ visible , setVisible ] = useState(false);
const [ ymlValue , setYmlValue ] = useState("");
const [ sha , setSha ] = useState(undefined);
const [ fileLanguage , setFileLanguage ] = useState(undefined);
const [ first , setFirst ] = useState(false);
let projectsId = props.match.params.projectsId;
let owner = props.match.params.owner;
useEffect(()=>{
if(projectsId){
const url = `/${owner}/${projectsId}/get_trustie_pipeline.json`;
axios.get(url,{
params:{
project_id:projectsId
}
}).then(result=>{
if(result && result.data.content){
setInfo(result.data.name);
setYmlValue(result.data.content);
setFirst(true);
setSha(result.data.sha);
}else{
setFirst(false);
}
setSpining(false);
}).catch(error=>{
console.log(error);
})
}
},[projectsId])
//
function changeEditor(value){
setYmlValue(value);
}
//
function select_language(value,array){
setFileLanguage(value);
setYmlValue( array && array.content);
}
//
function submit(){
let url = '';
const { defaultBranch } = props;
let params = {
branch: defaultBranch,
content:ymlValue,
filepath:info,
message:''
}
if(first){
// true
url = `/${owner}/${projectsId}/update_trustie_pipeline.json`;
axios.put(url,{
...params,
sha
}).then(result=>{
if(result){
setVisible(true);
}
}).catch(error=>{
console.log(error);
})
}else{
url = `/${owner}/${projectsId}/create_file.json`;
axios.post(url,params).then(result=>{
if(result){
setVisible(true);
}
}).catch(error=>{
console.log(error);
})
}
}
function suresubmit(){
setVisible(false);
props.history.push(`/projects/${owner}/${projectsId}/devops/list`);
}
return(
<Spin spinning={spining}>
<Modals visible={visible} closeFunc={(flag)=>setVisible(flag)} sureFunc={suresubmit}></Modals>
<p>编程语言</p>
<div className="mt20 mb20">
<FileLanguage language={fileLanguage} select_language={select_language}/>
</div>
<p>配置脚本</p>
<div className="editorBody">
<p className="editorHead">{info}</p>
<Editor
height="300px"
language={"yml"}
theme={"vs-grey"}
defaultValue="请输入内容"
value={ymlValue}
options={"editor_options"}
onChange={changeEditor}
></Editor>
</div>
<Blueback onClick={submit}>确定提交</Blueback>
</Spin>
)
}
export default Dispose;

View File

@ -1,39 +1,27 @@
import React, { Component } from 'react'; import React, { useState } from 'react';
import { Dropdown, Icon, Tooltip } from 'antd'; import { Menu } from 'antd';
import "./branch.css"; import "./branch.scss";
import CopyTool from '../Component/CopyTool';
class CloneAddress extends Component { function CloneAddress({http_url , ssh_url , zip_url , tar_url}) {
// 点击按钮复制功能 const [ key , setKey ] = useState("HTTP");
jsCopy = () => {
var e = document.getElementById("copy_rep_content");
e.select();
document.execCommand("Copy");
}
render() {
const { http_url, downloadUrl } = this.props;
return ( return (
<div className="downMenu">
<div>
<Menu className="urlMenu" selectedKeys={[key]} mode={"horizontal"}>
<Menu.Item key="HTTP" onClick={(e)=>{setKey(e.key)}}>HTTP</Menu.Item>
{ssh_url && <Menu.Item key="SSH" onClick={(e)=>{setKey(e.key)}}>SSH</Menu.Item>}
</Menu>
<div className="gitAddressClone"> <div className="gitAddressClone">
{/* <p className="addressTips"><span>版本库地址已变更,请基于新地址提交代码</span></p> */} <input type="text" id="copy_rep_content" value={key==="HTTP" ? http_url:ssh_url} />
{ <CopyTool inputId="copy_rep_content" className="copytool"/>
http_url && <span>HTTP</span> </div>
} </div>
<input type="text" id="copy_rep_content" value={http_url} /> <Menu className="edu-txt-center">
<Tooltip title="复制链接"> {zip_url && <Menu.Item style={{borderTop:"1px solid #eee"}}><a href={zip_url}>下载 ZIP</a></Menu.Item>}
<span className="color-blue" onClick={() => this.jsCopy()}><i className="iconfont icon-fuzhi"></i></span> {tar_url && <Menu.Item><a href={tar_url}>下载 TAR.GZ</a></Menu.Item>}
</Tooltip> </Menu>
{
downloadUrl &&
<span>
<Dropdown overlay={downloadUrl} trigger={['click']} placement="bottomRight">
<a className="ant-dropdown-link">
<Icon type="cloud-download" className="font-18 fl color-blue" />
</a>
</Dropdown>
</span>
}
</div> </div>
) )
} }
}
export default CloneAddress; export default CloneAddress;

View File

@ -1,116 +1,67 @@
import React , { useState , useEffect } from 'react'; import React , { useState , useEffect , useRef } from 'react';
import { Popover , Input , Spin } from 'antd'; import { Dropdown} from 'antd';
import './branch.css'; import './branch.scss';
import { getBranch , getTag } from '../GetData/getData'; import SelectOverlay from './SelectOverlay';
import { findDOMNode } from 'react-dom';
import { turnbar } from 'educoder';
export default (({ projectsId , branch , owner , changeBranch , branchList , tagflag = true })=>{ export default (({ projectsId , branch , owner , changeBranch , branchList , tagflag = true })=>{
const [ showValue , setShowValue ] = useState(branch); const [ showValue , setShowValue ] = useState(branch);
const [ inputValue , setInputValue] = useState(undefined); const [ visible , setVisible ] = useState(false);
const [ nav , setNav ] = useState(0);
const [ isSpin , setIsSpin ] = useState(true);
const [ flag , setFlag ] = useState(false);
const [ data , setData ] = useState(undefined); const refFa = useRef(null);
const [ datas , setDatas ] = useState(undefined); const refBox = useRef(null);
useEffect(() => {
document.addEventListener('click', clickMe , false);
}, [])
const clickMe = ({ target }) => {
//
const faComponent = findDOMNode(refFa.current);
const boxComponent = findDOMNode(refBox.current);
if (faComponent && boxComponent) {
const isChild = faComponent.contains(target);
const isBox = boxComponent.contains(target);
if(!isChild && !isBox){
setVisible(false);
}
}
}
useEffect(()=>{ useEffect(()=>{
setShowValue(branch); setShowValue(branch);
},[branch]) },[branch])
useEffect(()=>{ function ChangeB(params) {
document.body.addEventListener('click', e => { setVisible(false);
let name = e.target.className; let en = turnbar(params);
let turn = name === "ant-input OptionsInput" || name === "navli active"|| name === "navli" || name === "padding10 bor-bottom-greyE"; changeBranch(en);
if(turn){
return;
}else{
setFlag(false);
} }
})
})
useEffect(()=>{
if(branchList){
setData(branchList);
setDatas(branchList);
setIsSpin(false);
}
},[branchList])
async function getBranchs(id,owner){
let result = await getBranch(id,owner);
setData(result);
setDatas(result);
setIsSpin(false);
}
async function getTags(id,owner){
let result = await getTag(id,owner);
setData(result);
setDatas(result);
setIsSpin(false);
}
function changeInputValue(e){
setInputValue(e.target.value);
let filter = e.target.value ? data && data.length>0 && data.filter(item=>item.name.indexOf(e.target.value)>-1) : data;
setDatas(filter);
}
function changeNav(nav){
setNav(nav);
setIsSpin(true);
if(nav === 0){
getBranchs(projectsId,owner);
}else{
getTags(projectsId,owner);
}
}
function chooseitem(value){
// setShowValue(value);
changeBranch(value);
}
const menu = ( const menu = (
<div> <div ref={refFa}>
<div className="padding10 bor-bottom-greyE"> <SelectOverlay
<Input visible={visible}
placeholder="请输入分支或标签名称搜索" changeBranch={ChangeB}
autocomplete="off" className="OptionsInput" value={inputValue} tagflag={tagflag}
onChange={changeInputValue} style={{width:"220px"}} projectsId={projectsId}
owner={owner}
branchList={branchList}
/> />
<ul className="navUl">
<li className={nav === 0?"navli active":"navli"} onClick={()=>changeNav(0)}><i className="iconfont icon-fenzhi1 font-14 mr3"></i>分支列表</li>
{ tagflag && <li className={nav === 1?"navli active":"navli"} onClick={()=>changeNav(1)}><i className="iconfont icon-biaoqian3 font-14 mr3"></i>标签列表</li> }
</ul>
</div>
<Spin spinning={isSpin}>
<ul className="OptionsUl" id="ul-btn">
{
datas && datas.length>0 ?
datas.map((item,key)=>{
return(
<li key={key} onClick={()=>chooseitem(item.name)}><a className="task-hide ulALink">{item.name}</a></li>
)
}):
<p className="listTips">暂无{inputValue}{nav === 0 ?"分支":"标签"}~</p>
}
</ul>
</Spin>
</div> </div>
); );
return( return(
<Popover placement='bottomLeft' visible={flag} content={menu} onClick={()=>setFlag(!flag)} overlayClassName="branch-tagBox-list"> <Dropdown placement='bottomLeft' visible={visible} overlay={menu} overlayClassName="branch-tagBox-list" trigger={['click']} >
<div className="branch-tagBox"> <div className="branch-tagBox" ref={refBox} onClick={()=>setVisible(visible ? false : true)}>
{/* {nav === 0 ?"分支":"标签"} */} {/* {nav === 0 ?"分支":"标签"} */}
<span className="color-grey-9 mr3 ml8"><i className="iconfont icon-fenzhi2 font-18"></i></span> <span className="color-grey-9 mr3 ml8"><i className="iconfont icon-fenzhi2 font-18"></i></span>
<a className="ant-dropdown-link"> <span className="ant-dropdown-link task-hide" style={{fontWeight:"500",minWidth:"45px",maxWidth:"270px"}}>
{showValue} {showValue}
</a> </span>
<i className="showtag iconfont icon-xiajiantou font-14 color-grey-9 mr8" /> <i className="showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1" />
</div> </div>
</Popover> </Dropdown>
) )
}) })

View File

@ -0,0 +1,90 @@
import React , { useState , useEffect } from 'react';
import { Input , Spin , Menu } from 'antd';
import { getBranch , getTag } from '../GetData/getData';
function SelectOverlay({ changeBranch , tagflag , projectsId , owner , visible }) {
const [ inputValue , setInputValue] = useState(undefined);
const [ nav , setNav ] = useState(0);
const [ isSpin , setIsSpin ] = useState(true);
const [ data , setData ] = useState(undefined);
const [ datas , setDatas ] = useState(undefined);
const [ keys ,setKeys] = useState("branch");
useEffect(()=>{
if(visible){
setKeys("branch");
getBranchs(projectsId,owner);
setIsSpin(true);
}
},[visible])
async function getBranchs(id,owner){
let result = await getBranch(id,owner);
setData(result);
setDatas(result);
setIsSpin(false);
}
async function getTags(id,owner){
let result = await getTag(id,owner);
setData(result);
setDatas(result);
setIsSpin(false);
}
function chooseitem(value){
changeBranch(value);
}
function changeInputValue(e){
setInputValue(e.target.value);
let filter = e.target.value ? data && data.length>0 && data.filter(item=>item.name.indexOf(e.target.value)>-1) : data;
setDatas(filter);
}
function changeNav(e){
setKeys(e.key);
setIsSpin(true);
if(e.key === "branch"){
getBranchs(projectsId,owner);
setNav(0);
}else{
getTags(projectsId,owner);
setNav(1);
}
}
return(
<div className="overlayBranch">
<div className="padding15" style={{paddingBottom:"0px"}}>
<Input
prefix={<i className="iconfont icon-sousuo_icon1 font-14"></i>}
placeholder={`请输入分支${tagflag ? "或标签" :""}名称搜索`}
autocomplete="off" className="OptionsInput"
value={inputValue}
onChange={changeInputValue}
/>
</div>
<Menu mode="horizontal" className="navUl" selectedKeys={[keys]} onClick={changeNav}>
<Menu.Item key={"branch"}>分支</Menu.Item>
{ tagflag && <Menu.Item key={"tag"}>标签</Menu.Item> }
</Menu>
<Spin spinning={isSpin}>
<ul className="OptionsUl" id="ul-btn">
{
datas && datas.length>0 &&
datas.map((item,key)=>{
return(
<li key={key} onClick={()=>chooseitem(item.name)}><a className="task-hide ulALink">{item.name}</a></li>
)
})
}
{
datas && datas.length === 0 &&
<p className="listTips">暂无{inputValue}{nav === 0 ?"分支":"标签"}~</p>
}
</ul>
</Spin>
</div>
)
}
export default SelectOverlay;

View File

@ -1,84 +0,0 @@
.branchDropdown{
border:1px solid #eee;
border-radius: 4px;
display: flex;
justify-content: center;
height: 40px;
line-height: 40px;
min-width: 220px;
}
.branchDropdown .ant-dropdown-trigger{
width: 100%;
padding:0px 15px;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
}
.branchOptions{
width: 220px;
box-shadow: 0px 0px 3px 1px rgba(134, 134, 134, 0.4);
border-radius: 3px;
background: #fff;
max-height: 300px;
}
.OptionsUl{
max-height: 220px;
overflow-y: auto;
}
.OptionsUl li{
height: 35px;
line-height: 35px;
cursor: pointer;
padding:0px 10px;
}
.OptionsUl li:hover{
background-color: #F0F0F0;
}
.OptionsUl li a{
display: block;
}
.OptionsInput{
height: 32px;
padding-left: 4px;
line-height: 32px;
width: 100%;
}
.branch-tagBox{
border:1px solid #eee;
border-radius: 3px;
height: 40px;
display: flex;
align-items: center;
cursor: pointer;
min-width: 140px;
}
.branch-tagBox-list .ant-popover-arrow{
display: none;
}
.branch-tagBox-list.ant-popover.ant-popover-placement-bottom{
padding-top:0px;
}
.branch-tagBox .ant-dropdown-link{
display: block;
flex:1;
}
.branch-tagBox-list .ant-popover-inner-content{
padding:0px;
}
.navUl{
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 5px;
}
.navUl li{
cursor: pointer;
}
.navUl li.active{
color:#5091FF;
}
.listTips{
padding:20px 0px;
text-align: center;
}

View File

@ -0,0 +1,129 @@
.branchDropdown{
border:1px solid #eee;
border-radius: 4px;
display: flex;
justify-content: center;
height: 40px;
line-height: 40px;
min-width: 220px;
}
.branchDropdown .ant-dropdown-trigger{
width: 100%;
padding:0px 15px;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
}
.branchOptions{
width: 220px;
box-shadow: 0px 0px 3px 1px rgba(134, 134, 134, 0.4);
border-radius: 3px;
background: #fff;
max-height: 300px;
}
.OptionsUl{
min-height: 50px;
max-height: 220px;
overflow-y: auto;
}
.OptionsUl li{
height: 30px;
line-height: 30px;
cursor: pointer;
padding:0px 20px;
margin:5px 0px;
}
.OptionsUl li:hover{
background-color: #F0F0F0;
}
.OptionsUl li a{
display: block;
}
.OptionsInput{
height: 32px;
padding-left: 4px;
line-height: 32px;
width: 100%;
}
.branch-tagBox{
border:1px solid #D0D0D0;
border-radius: 3px;
height: 32px;
display: flex;
align-items: center;
cursor: pointer;
min-width: 104px;
}
.branch-tagBox:hover{
background-color: #F3F4F6;
}
.branch-tagBox-list{
background: #FFFFFF;
box-shadow: 0px 4px 8px 2px rgba(212, 212, 212, 0.5);
border-radius: 4px;
.ant-popover-arrow{
display: none;
}
&.ant-popover.ant-popover-placement-bottom{
padding-top:0px;
}
.branch-tagBox .ant-dropdown-link{
display: block;
flex:1;
max-width: 105px;
}
.ant-popover-inner-content{
padding:0px;
}
}
.overlayBranch{
width: 325px;
.navUl{
margin-top: 8px;
height: 30px;
line-height: 30px;
li{
height: 30px;
line-height: 30px;
padding:0px 5px;
margin-left: 20px!important;
&.ant-menu-item-selected{
border-color:#466aff!important;
color:#466aff!important;
}
&.ant-menu-item-active{
border-color:transparent ;
}
}
}
}
.listTips{
padding:20px 0px;
text-align: center;
}
.urlMenu{
line-height: 30px;
margin-bottom: 10px;
padding:15px 20px 0px 20px;
border-bottom: none;
li.ant-menu-item{
height: 30px;
line-height: 30px;
padding:0px 5px;
margin-right: 20px!important;
&.ant-menu-item-selected,&.ant-menu-item-active{
color: #333;
}
&.ant-menu-item-selected{
border-color:#466aff!important;
}
&.ant-menu-item-active{
border-color:transparent ;
}
}
}
.copytool{
margin:0px 10px;
}

View File

@ -55,6 +55,7 @@ function AddGroup({organizeId,getGroupID}){
function addCollaborator(){ function addCollaborator(){
getGroupID && getGroupID(id); getGroupID && getGroupID(id);
setID(undefined);
} }
return( return(

View File

@ -4,7 +4,7 @@ import axios from 'axios';
import { getImageUrl } from 'educoder'; import { getImageUrl } from 'educoder';
const { Option } = AutoComplete; const { Option } = AutoComplete;
function AddMember({getID,login}){ function AddMember({getID,login,showNotification}){
const [ id , setID ] = useState(undefined); const [ id , setID ] = useState(undefined);
const [ source , setSource ] = useState(undefined); const [ source , setSource ] = useState(undefined);
const [ searchKey , setSearchKey ] = useState(undefined); const [ searchKey , setSearchKey ] = useState(undefined);
@ -45,7 +45,7 @@ function AddMember({getID,login}){
src={getImageUrl(`/${item && item.image_url}`)} src={getImageUrl(`/${item && item.image_url}`)}
alt="" alt=""
/> />
<span className="ml10" style={{ "vertical-align": "middle" }}> <span className="ml10" style={{ verticalAlign: "middle" }}>
{item.username} {item.username}
<span className="color-grey ml10">({item.login})</span> <span className="color-grey ml10">({item.login})</span>
</span> </span>
@ -66,7 +66,13 @@ function AddMember({getID,login}){
}; };
function addCollaborator(){ function addCollaborator(){
if(source && source.length>0&&searchKey){
getID && getID(id); getID && getID(id);
setSearchKey(undefined);
setID(undefined)
}else{
showNotification("请选择存在的用户!");
}
} }
return( return(

View File

@ -113,7 +113,14 @@ li.ant-menu-item{
z-index: 10000; z-index: 10000;
} }
.laterest{ .laterest{
color: #05690d; background-color: #EF3131;
color: #fff;
font-size: 12px;
margin-left: 10px;
padding:0px 5px;
border-radius: 2px;
height: 18px;
line-height: 18px;
} }
@media screen and (max-width: 1800px){ @media screen and (max-width: 1800px){
@ -155,41 +162,301 @@ li.ant-menu-item{
margin:0px 20px!important; margin:0px 20px!important;
} }
} }
.hoverA{
display:flex;
align-items: center;
max-width: 78px;
&:hover a{
color:#2A61FF !important ;
}
}
.menuPanels{ .menuPanels{
width: 240px; width: 295px;
height: 180px; .leftline{
position: relative;
color: #666;
height: 16px;
margin-left: 14px;
font-size: 12px;
&::before{
position: absolute;
left: -7px;
top:3px;
height: 12px;
width: 1px;
background-color: #999;
content: "";
}
}
.ant-btn{
height: 36px;
line-height: 34px;
width: 83px;
text-align: center;
padding:0px ;
font-weight: 500;
font-size: 14px;
&.currentBtn{
cursor: default;
color: #333;
&:hover{
color: #333;
border-color: #d0d0d0;
}
}
}
.ant-btn-default{
color: #333;
border-color: #d0d0d0;
&:hover{
background: #F3F4F6;
}
}
.ant-btn{
width: 102px;
height: 32px;
line-height: 30px;
}
.ant-btn-primary{
color: #fff;
background-color: #466AFF;
border:none;
&:hover{
background-color: rgba(70,106,255,0.85);
}
}
.focusPanelHeadInfo{
padding:14px 16px;
border-bottom: 1px solid #eee;
}
.ant-popover-content,.ant-popover-inner{ .ant-popover-content,.ant-popover-inner{
height: 100%; height: 100%;
width: 100%; width: 100%;
} }
.ant-popover-inner-content{
padding:0px;
}
} }
.halfs{ .halfs{
margin-top: 24px; margin-top: 24px;
padding:24px 0px 0px 0px; padding:24px 0px 0px 0px;
border-top: 1px solid #e8e8e8; border-top: 1px solid #e8e8e8;
.attrPerson{
padding-bottom: 24px;
} }
.aboutSubTitle{
display: flex;
align-items: center;
}
.menuMaininfos{
padding:10px 16px 14px;
border-bottom: 1px solid #eee;
} }
.menuinfos{ .menuinfos{
padding:15px 0px; padding:10px 20px 16px;
&>a{ &>a{
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
border-right: 1px solid #eee;
flex: 1; flex: 1;
& >span:first-child{ & >span:first-child{
font-size: 18px; font-size: 16px;
font-weight: 400; font-weight: 500;
color: #333; color: #333;
line-height: 22px;
} }
& >span:last-child{ & >span:last-child{
color: #666; color: #666;
} font-weight: 400;
&:last-child{ line-height: 20px;
border-right: none; margin-top: 6px;
}
}
}
/*-------------------个人主页:右侧提示区域--------------------------*/
.-task-sidebar {
position: fixed;
width: 40px;
right: 10px;
bottom: 80px;
z-index: 10;
}
@media screen and (max-width: 1920px){
.-task-sidebar{
right:220px;
}
}
@media screen and (max-width: 1750px){
.-task-sidebar{
right:160px;
}
}
@media screen and (max-width: 1650px){
.-task-sidebar{
right:115px;
}
}
@media screen and (max-width: 1550px){
.-task-sidebar{
right:90px;
}
}
@media screen and (max-width: 1450px){
.-task-sidebar{
right:45px;
}
}
@media screen and (max-width: 1200px){
.-task-sidebar{
right:0px;
display: none;
}
}
.-task-sidebar>div {
height: 48px;
line-height: 48px;
box-sizing: border-box;
width: 48px;
color: #999;
font-size: 20px;
text-align: center;
margin-bottom: 20px;
border-radius: 50%;
background: #FFFFFF;
box-shadow: 0px 0px 12px 5px rgba(208, 208, 208, 0.2);
}
.-task-sidebar>div i {
color: #999;
}
.-task-sidebar>div:hover i {
color: #fff !important;
}
.-task-sidebar>div:hover{
background: #466AFF;
box-shadow: 0px 0px 10px 2px #B6D0FC;
}
.helpBox{
width: 260px;
z-index: 103;
&.shareContent{
width: 160px;
}
.ant-popover-title{
font-size: 16px;
}
.ant-popover-inner-content{
padding:0px;
}
p.titlecontent{
font-size: 16px;
color: #333;
line-height: 20px;
padding:15px 20px;
}
.faqUl{
padding:10px 15px;
max-height: 230px;
overflow-y: auto;
font-size: 13px;
li{
background: #F5F5F5;
border-radius: 20px;
padding:0px 15px;
color: #333;
height: 30px;
line-height: 30px;
margin-bottom: 3px !important;
a{
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
&:hover{
background-color: #D1E9FF;
a{
color: #333!important;
}
}
}
}
.shareUl{
display: flex;
align-items: center;
li > i{
font-size: 32px!important;
}
}
}
// tooltip样式
.tooltipBox .ant-tooltip-inner{
padding: 8px 12px;
font-size: 15px;
}
.-task-desc {
background: #494949;
width: 90px;
line-height: 36px;
text-align: center;
position: absolute;
color: #fff;
font-size: 13px;
z-index: 999999;
opacity: 0;
}
.-task-desc div {
position: absolute;
top: 10px;
right: -7px;
height: 13px;
}
.-task-desc div img {
float: left
}
.-task-sidebar .scan_ewm {
position: absolute !important;
right: 45px !important;
bottom: 0px !important;
background-color: #494949 !important;
-webkit-box-sizing: border-box !important;
box-sizing: border-box !important;
font-size: 14px !important;
line-height: 16px !important;
display: none;
height: 213px !important;
}
.trangle_right {
position: absolute;
right: -5px;
bottom: 15px;
width: 0;
height: 0px;
border-top: 6px solid transparent;
border-left: 5px solid #494949;
border-bottom: 6px solid transparent
}
//头部输入框样式
.headSerach{
background: rgba(255, 255, 255, 0.1);
border-radius: 4px;
padding-left: 20px;
//修改antd输入框默认样式
.ant-input,.ant-input:focus{
border: none !important;
background-color: rgba(255, 255, 255, 0) !important;
}
&:hover{
padding: 2px 20px 2px 20px;
background: #FFF;
& i{
color: #333;
} }
} }
} }

View File

@ -1,13 +1,13 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { AlignCenter , FlexAJ } from '../Component/layout'; import { AlignCenter , FlexAJ } from '../Component/layout';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { Popover , Spin } from 'antd'; import { Popover , Spin , Button } from 'antd';
import { getImageUrl } from 'educoder'; import { getImageUrl } from 'educoder';
import './Component.scss'; import './Component.scss';
import { getUser } from '../GetData/getData'; import { getUser } from '../GetData/getData';
import axios from 'axios'; import axios from 'axios';
function Contributors({contributors,owner,projectsId}){ function Contributors({owner,projectsId,currentLogin}){
const [ menuList ,setMenuList ]= useState([]); const [ menuList ,setMenuList ]= useState([]);
const [ list , setList ]= useState(undefined); const [ list , setList ]= useState(undefined);
const [ total , setTotal ]= useState(0); const [ total , setTotal ]= useState(0);
@ -16,11 +16,18 @@ function Contributors({contributors,owner,projectsId}){
const [ isSpin , setIsSpin ] = useState(false); const [ isSpin , setIsSpin ] = useState(false);
useEffect(()=>{ useEffect(()=>{
if(contributors && contributors.total_count>0){ getData();
setTotal(contributors.total_count); },[])
setList(contributors.list);
function getData(){
const url = `/${owner}/${projectsId}/contributors.json`;
axios.get(url).then(result=>{
if(result){
setTotal(result.data.total_count);
setList(result.data.list);
}
}).catch(error=>{})
} }
},[contributors])
useEffect(()=>{ useEffect(()=>{
if(login){ if(login){
@ -46,46 +53,60 @@ function Contributors({contributors,owner,projectsId}){
} }
} }
function renderOrganize(list) {
let str = "";
list.map(i=>{
str = str+i.name + "、";
})
return str && str.substr(0,str.length - 1);
}
function setMenusFunc(data){ function setMenusFunc(data){
if(data){ if(data){
let ele = ( let ele = (
<Spin spinning={isSpin}> <Spin spinning={isSpin}>
<FlexAJ> <FlexAJ className="menuMaininfos">
<AlignCenter> <AlignCenter>
<Link to={`/users/${data.login}`}><img src={getImageUrl(`/${data.image_url}`)} alt="" className="radius" width="38px" height="38px"/></Link> <Link to={`/${data.login}`}><img src={getImageUrl(`/${data.image_url}`)} alt="" className="radius" width="38px" height="38px"/></Link>
<Link to={`/users/${data.login}`} className="ml10">{data.name}</Link>
</AlignCenter> <div className="ml10">
<Link to={`/${data.login}`}>{data.name}</Link>
{ data.location && <span className="leftline">{data.location}</span> }
{ {
data.is_watch ? <a className="color-grey-9" onClick={()=>FocusFunc(false,data.login)}>取消关注</a>:<a className="color-blue" onClick={()=>FocusFunc(true,data.login)}>关注</a> data.organizations && data.organizations.length>0&&
<p className="task-hide" style={{maxWidth:"215px"}}>
所属组织{renderOrganize(data.organizations)}
</p>
} }
</FlexAJ>
<AlignCenter className="menuinfos">
<a href={data.projects_url}>
<span>{data.projects_count}</span>
<span>项目数</span>
</a>
<a href={data.followers_url}>
<span>{data.followers_count}</span>
<span>粉丝数</span>
</a>
<a href={data.following_url}>
<span>{data.following_count}</span>
<span>关注数</span>
</a>
</AlignCenter>
{
data.organizations && data.organizations.length > 0 ?
<AlignCenter className="font-12 pt4 pb4">
<span>所属组织</span>
<div className="task-hide flex1">
{renderArray(data.organizations)}
</div> </div>
</AlignCenter> </AlignCenter>
:"" </FlexAJ>
} <AlignCenter className="menuinfos">
<Link to={`/${data.login}/projects`}>
<span>{data.projects_count}</span>
<span>项目数</span>
</Link>
<Link to={`/${data.login}/followers`}>
<span>{data.followers_count}</span>
<span>粉丝数</span>
</Link>
<Link to={`/${data.login}/following`}>
<span>{data.following_count}</span>
<span>关注数</span>
</Link>
</AlignCenter>
<div className={"pb20"} style={{display:"flex",justifyContent:'center'}}>
{ {
data.location && <AlignCenter className="font-12 pt4 pb4"><span>所在地址:</span><span className="ml5">{data.location}</span></AlignCenter> currentLogin && (currentLogin === data.login)
?
<Button className="currentBtn">当前用户</Button>
:
data.is_watch ?
<Button type={"default"} onClick={()=>FocusFunc(false,data.login)}>已关注</Button>
:
<Button type={"primary"} onClick={()=>FocusFunc(true,data.login)}>关注TA</Button>
} }
</div>
</Spin> </Spin>
) )
setMenu(ele); setMenu(ele);
@ -134,27 +155,26 @@ function Contributors({contributors,owner,projectsId}){
} }
return( return(
total > 0 ?
<div className="halfs"> <div className="halfs">
<FlexAJ> <Link to={`/${owner}/${projectsId}/contribute`} className="font-16 color-ooo hoverA">
<AlignCenter><span className="font-16 color-grey-6">贡献者</span>{ contributors && contributors.total_count > 0 && <span className="infoCount">{contributors.total_count}</span>}</AlignCenter> <span>贡献者</span>
<Link className="font-12 color-grey-9" to={`/projects/${owner}/${projectsId}/contribute`}>全部</Link> { total > 0 && <span className="infoCount">{total}</span>}
</FlexAJ> </Link>
<div className="attrPerson" onMouseLeave={()=>setVisibleFunc(false)}> <div className="attrPerson" onMouseLeave={()=>setVisibleFunc(false)}>
{ {
total > 0 ? list && list.length>0 && list.map((item,key)=>{
list.map((item,key)=>{
return( return(
<Popover content={menu} visible={item.visible} overlayClassName="menuPanels" placement="top"> <Popover content={menu} visible={item.visible} overlayClassName="menuPanels" placement="top">
<Link key={key} to={`/users/${item.login}`}> <Link key={key} to={`/${item.login}`}>
<img src={getImageUrl(`/${item.image_url}`)} alt="" onMouseOver={()=>setVisibleFunc(true,item.login,key)}/> <img src={getImageUrl(`/${item.image_url}`)} alt="" onMouseOver={()=>setVisibleFunc(true,item.login,key)}/>
</Link> </Link>
</Popover> </Popover>
) )
}) })
:""
} }
</div> </div>
</div> </div>:""
) )
} }
export default Contributors; export default Contributors;

View File

@ -0,0 +1,51 @@
import React, { useState, useCallback, memo } from 'react';
import { Tooltip } from 'antd';
CopyTool.defaultProps = {
beforeText: '复制链接', //
afterText: '复制成功', //
className: '', //svgclass
inputId: 'copyText', //ID
timeOut:true, //beforeText
};
function CopyTool({ beforeText, afterText, className , inputId , timeOut }) {
const [title, setTitle] = useState(() => {
return beforeText;
});
//
const copyUrl = useCallback(() => {
const copyEle = document.querySelector(`#${inputId}`); //
if (!copyEle) {
console.error("您的CopyTool未设置正确的inputId");
return;
}
copyEle.select(); //
if (document.execCommand('copy')) {
document.execCommand('copy');
}
document.getSelection().removeAllRanges();
setTitle(afterText);
if(timeOut){
setTimeout(function(){
setTitle(beforeText);
},1500)
}
}, []);
return (
<Tooltip
placement="top"
title={title}
onVisibleChange={() => { setTitle(beforeText) }}
>
<i className={`iconfont icon-fuzhiicon ${className}`} style={{ color: '#466aff' }} onClick={copyUrl}></i>
</Tooltip>
);
}
export default memo(CopyTool);

View File

@ -0,0 +1,33 @@
import React from 'react';
import { AlignCenter } from '../layout';
import { Button } from 'antd';
import Modals from '../PublicModal/Index';
function DeleteBox({
visible ,
onCancel ,
onSuccess ,
title ,
subTitle,
content
}) {
return(
<Modals
title={title}
btn={
<div>
<Button size={'large'} onClick={onCancel}>取消</Button>
<Button type={"danger"} size={"large"} onClick={onSuccess}>确认删除</Button>
</div>
}
onCancel={onCancel}
visible={visible}
>
<div className="desc">
<AlignCenter className="descMain"><i className="iconfont icon-shanchu_tc_icon mr10"></i>{content}</AlignCenter>
<p className="task-hide-2" style={{WebkitLineClamp:5}}>删除后未来事件将不会推送至此Webhook地址<span title={subTitle}>{subTitle}</span></p>
</div>
</Modals>
)
}
export default DeleteBox;

View File

@ -1,5 +1,6 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { Drawer , Tree , Spin } from 'antd'; import { Drawer , Tree , Spin } from 'antd';
import { turnbar} from 'educoder';
import './Component.scss'; import './Component.scss';
import axios from 'axios'; import axios from 'axios';
const { TreeNode , DirectoryTree } = Tree; const { TreeNode , DirectoryTree } = Tree;
@ -71,7 +72,8 @@ function DrawerPanel({visible,onClose,branch,owner,projectsId,history, name , li
let dataref = event.node.props.dataRef; let dataref = event.node.props.dataRef;
if(dataref.type==="file"){ if(dataref.type==="file"){
onClose(); onClose();
history.push(`/projects/${owner}/${projectsId}/tree/${branch}/${dataref.path}`); let value = turnbar(branch);
history.push(`/${owner}/${projectsId}/tree/${value}/${dataref.path}`);
} }
} }

View File

@ -1,9 +1,6 @@
.ant-modal-mask{ .ant-modal-mask{
z-index: 1001; z-index: 1031;
} }
.ant-modal-wrap{ .ant-modal-wrap{
z-index: 1002; z-index: 1032;
.ant-form-explain{
position: absolute;
}
} }

View File

@ -0,0 +1,41 @@
import React, { useState } from "react";
import { Input ,notification} from "antd";
const { Search } = Input;
export default ({history}) => {
const [openSearch, setOpenSearch] = useState(false);
function onGlobalSearch(value) {
history.push('/search?value=' + value);
// window.location.href = `search?value=` + value;
// history.push({
// pathname:'/search',
// state:value
// })
}
return (
<React.Fragment>
{
openSearch ?
<div
onBlur={() => {
setTimeout(() => {
setOpenSearch(false)
}, 500)
}}
>
<Search placeholder="请输入搜索关键字"
className={`search-input mr20`}
onSearch={onGlobalSearch}
autoFocus={true}
style={{width:'260px'}}
/>
</div>
:
<i className="iconfont icon-sousuo font-18 ml30" style={{color:"#a5a5a5"}} onClick={() => {
setOpenSearch(true)
}} />
}
</React.Fragment>
)
};

View File

@ -1,10 +1,21 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { FlexAJ } from '../Component/layout'; import { FlexAJ } from '../Component/layout';
import { Divider } from 'antd';
import axios from 'axios';
function LanguagePower({languages}){ function LanguagePower({owner,projectsId}){
const [ array , setArray ] = useState(undefined); const [ array , setArray ] = useState(undefined);
useEffect(()=>{ useEffect(()=>{
getData();
},[])
function getData(){
const url = `/${owner}/${projectsId}/languages.json`;
axios.get(url).then(result=>{
if(result){
let languages = result.data;
if(languages){ if(languages){
let arr = []; let arr = [];
Object.keys(languages).map((item,key)=>{ Object.keys(languages).map((item,key)=>{
@ -12,7 +23,19 @@ function LanguagePower({languages}){
}) })
setArray(arr); setArray(arr);
} }
},[languages]) }
}).catch(error=>{})
}
// useEffect(()=>{
// if(languages){
// let arr = [];
// Object.keys(languages).map((item,key)=>{
// arr.push({name:item,percent:languages[item],color:getColor()});
// })
// setArray(arr);
// }
// },[languages])
 function getColor(){  function getColor(){
let str = "#"; let str = "#";
@ -24,8 +47,10 @@ function LanguagePower({languages}){
return str; return str;
} }
return( return(
(array && array.length > 0) ?
<div> <div>
<p className="font-16 color-grey-6">开发语言</p> <Divider />
<p className="font-16 color-ooo aboutSubTitle">开发语言</p>
<div className="progress"> <div className="progress">
{ {
array && array.map((item,key)=>{ array && array.map((item,key)=>{
@ -47,8 +72,7 @@ function LanguagePower({languages}){
} }
</FlexAJ> </FlexAJ>
} }
</div>:""
</div>
) )
} }
export default LanguagePower; export default LanguagePower;

View File

@ -45,15 +45,15 @@ const Div = styled.div`{
export default (({ user , img, name, time, focusStatus, is_current_user, login , successFunc }) => { export default (({ user , img, name, time, focusStatus, is_current_user, login , successFunc }) => {
return ( return (
<Div> <Div>
<Link to={`/users/${user && user.login}`}><Img src={getImageUrl(`/${img}`)} /></Link> <Link to={`/${user && user.login}`}><Img src={getImageUrl(`/${img}`)} /></Link>
<div className="m-infos"> <div className="m-infos">
<Link to={`/users/${user && user.login}`}><Name>{name}</Name></Link> <Link to={`/${user && user.login}`}><Name>{name}</Name></Link>
<Time><I className="iconfont icon-shijian"></I>加入时间:{time}</Time> <Time><I className="iconfont icon-shijian"></I>加入时间:{time}</Time>
{ {
is_current_user ? is_current_user ?
<Button type="default">当前用户</Button> <Button type="default">当前用户</Button>
: :
<FocusButton is_watch={focusStatus} id={login} successFunc={successFunc}/> <FocusButton is_watch={focusStatus} id={login} successFunc={successFunc} notReset={true}/>
} }
</div> </div>
</Div> </Div>

View File

@ -0,0 +1,125 @@
/* eslint-disable react/jsx-no-duplicate-props */
import React, { useState } from 'react';
import * as ReactDOM from 'react-dom';
import { Modal, Button } from 'antd';
import './index.scss';
//
InitModal.defaultProps = {
okText: '确认', //
cancelText: '取消', //
className: '', //
inputId: 'copyText', //ID
onCancel:()=>{}, //
onOk:()=>{}, //
title:'提示', //
contentTitle:'', //
content:'', //
afterClose:()=>{}, //
};
// 使
export default function DelModal(props) {
renderModal({ ...props, type: 'delete' })
}
// 使
export function Confirm(props) {
renderModal({ ...props, type: 'confirm' })
}
function renderModal(props) {
const { type, afterClose } = props;
const div = document.createElement('div');
document.body.appendChild(div);
function destroy() {
afterClose && afterClose();
const unmountResult = ReactDOM.unmountComponentAtNode(div);
if (unmountResult && div.parentNode) {
div.parentNode.removeChild(div);
}
}
function modalType(type) {
if (type === 'delete') {
return <InitModal
title="删除"
contentTitle="确定要删除吗?"
okText="确认删除"
{...props}
afterClose={destroy}
contentTitle={<React.Fragment>
<i className="red-circle iconfont icon-shanchu_tc_icon mr3"></i>
{props.contentTitle}
</React.Fragment>}
/>
} else if (type === 'confirm') {
return <InitModal title="选择" afterClose={destroy} {...props} />
} else {
return <InitModal title="选择" afterClose={destroy} {...props} />
}
}
function render() {
setTimeout(() => {
ReactDOM.render(
modalType(type),
div,
);
});
}
render();
}
//
function InitModal({
onCancel,
onOk,
title,
contentTitle,
content,
okText,
cancelText,
afterClose,
className,
}) {
const [visible, setVisible] = useState(true);
function onCancelModal() {
setVisible(false);
onCancel && onCancel()
}
function onSuccess() {
setVisible(false);
onOk && onOk();
}
return (
<Modal
visible={visible}
onCancel={onCancelModal}
afterClose={afterClose}
title={title}
className={`myself-modal ${className}`}
centered
footer={[
<Button type="default" key="back" onClick={onCancelModal}>
{cancelText}
</Button>,
<Button className="foot-submit" key="submit" onClick={onSuccess}>
{okText}
</Button>,
]}
>
<div>
{contentTitle && <p className="content-title">{contentTitle}</p>}
<p className="content-descibe">{content}</p>
</div>
</Modal>
)
}

View File

@ -0,0 +1,63 @@
.myself-modal {
.ant-modal-header {
padding: 9px 24px;
background: #f8f8f8;
border-bottom: 1px solid #eee;
}
.ant-modal-title {
text-align: left;
}
.ant-modal-close {
top: 0px !important;
}
.ant-modal-close-x {
font-size: 24px;
}
.ant-modal-body {
text-align: center;
}
.content-title {
display: flex;
justify-content: center;
align-items: center;
margin: 2rem 0 1rem !important;
font-size: 16px;
color: #333;
letter-spacing: 0;
line-height: 29px;
font-weight: 400;
}
.red-circle {
align-self: flex-start;
color: #ca0002;
font-size: 1.5rem !important;
}
.content-descibe {
font-size: 14px;
color: #666;
line-height: 33px;
font-weight: 400;
}
.ant-modal-footer {
padding: 2rem 0;
text-align: center;
border: 0;
.ant-btn {
width: 6rem;
}
}
.foot-submit {
margin-left: 3rem;
color: #df0002;
&:hover {
border-color: #df0002;
}
}
.ant-btn-default:hover,
.ant-btn-default:active,
.ant-btn-default:focus {
background: #f3f4f6;
color: #333;
border-color: #d0d0d0;
}
}

View File

@ -0,0 +1,62 @@
import React, {useEffect, useRef, useState} from 'react';
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
import './Component.scss';
function Monaco(props) {
const {
style = { // dom
height: '400px',
},
value = '', //
onChange = () => { //
},
fontSize = 14, //
monacoOptions = {
scrollBeyondLastLine: false,
lineNumbers: "off",
wordWrap: true,
overviewRulerBorder: true,
lineHeight: 24,
readOnly:true
}, // monaco
language = 'html', // js ts sql css json html
} = props;
const editOrRef = useRef();
const ThisEditor = useRef();
useEffect(() => {
ThisEditor.current = monaco.editor.create(editOrRef.current, {
value: value || '',
language,
theme: "vs-grey",
fontSize: fontSize + 'px',
minimap: { //
enabled: false,
},
...monacoOptions,
});
ThisEditor.current.onDidChangeModelContent((e) => {
let newValue = ThisEditor.current.getValue();
onChange(newValue);
});
return () => {
ThisEditor.current.dispose();
ThisEditor.current = undefined; //
}
}, []);
useEffect(() => {
if (ThisEditor.current) {
ThisEditor.current.updateOptions({
fontSize: fontSize + 'px',
})
}
}, [fontSize]);
return (
<div style={style} ref={editOrRef}>
</div>
);
}
export default Monaco;

View File

@ -0,0 +1,90 @@
.systemBox{
.ant-modal-body{
padding:1px 0px 0px 0px;
.sysBox{
background-image: url('./bg.png');
background-repeat: no-repeat;
background-size: 100% 334px;
margin-top: -55px;
}
.sysnoticeBox{
width: 100%;
padding:80px 0px 34px;
display: flex;
flex-direction: column;
width: 780px;
margin: 0px auto;
p.ntitle{
height: 33px;
font-size: 24px;
font-weight: 500;
color: #31FFF7;
line-height: 33px;
text-align: center;
}
p.nSubtitle{
height: 25px;
line-height: 25px;
font-size: 18px;
font-weight: 500;
color: #FFFFFF;
margin-top: 60px;
}
.markdown-body{
box-shadow: 0px 0px 17px rgba(0,0,0,0.2);
border-radius: 4px;
margin-top: 17px!important;
color: white;
}
.nContent{
padding:20px 34px;
background-color: #fff;
line-height: 30px;
font-size: 15px;
font-weight: 400;
color: #333;
.realmName{
margin-top: 20px;
display: flex;
ul{
width: 50%;
padding-left: 0px!important;
li{
font-size: 15px;
font-weight: 500;
line-height: 32px;
text-align: left;
color: #000;
list-style-type: none!important;
&:first-child{
color: #E65714;
}
}
}
}
.nSubdesc{
font-size: 15px;
font-weight: 400;
color: #000000;
line-height: 31px;
margin-top: 20px;
}
.nInfo{
font-size: 14px;
font-weight: 400;
color: #333333;
text-align: right;
margin-top: 25px;
p{
height: 20px;
line-height: 20px;
}
}
}
.nBtn{
text-align: center;
margin-top: 33px;
}
}
}
}

View File

@ -0,0 +1,92 @@
import React , { useEffect , useState } from 'react';
import { Modal , Button } from 'antd';
import './Index.scss';
import '../../css/index.scss';
import RenderHtml from '../../../components/render-html';
// import cookie from 'react-cookies';
import axios from 'axios';
function SystemNotice({showNotice,system_notification,history,login,hideSystemNotice}){
const [ visible , setVisible ] = useState(false);
useEffect(()=>{
if(system_notification && !system_notification.is_read && showNotice && login){
setVisible(true);
}
},[system_notification,login])
function sureContinue() {
if(login && ( system_notification && system_notification.id )){
const url = `/users/${login}/system_notification_histories.json`;
axios.post(url,{
system_notification_id:system_notification.id
}).then(result=>{
if(result){
setVisible(false);
hideSystemNotice();
}
}).catch(error=>{})
}else{
setVisible(false);
hideSystemNotice();
}
// cookie.remove('notice_stage');
// let inFifteenMinutes = new Date(new Date().getTime() + 24 * 3600 * 1000);//
// // let inFifteenMinutes = new Date(new Date().getTime() + 60 * 1000);//
// cookie.save('notice_stage', true,{ expires: inFifteenMinutes,path:"/" });
// setVisible(false);
}
return (
<Modal
visible = {visible}
width="1000px"
footer={false}
title={false}
centered={true}
closable={false}
wrapClassName={'systemBox'}
>
<div className="sysBox">
<div className="sysnoticeBox">
<p className="ntitle">{system_notification && system_notification.subject}</p>
<p className="nSubtitle">{system_notification && system_notification.sub_subject}</p>
{/* <div className="nContent">
<div className="nMaindesc">
为了给用户提供更加稳定优质的服务我们即将对平台门户首页平台名称平台域名进行一次全面升级与变更原平台名称Trustie中文名确实将于2021年10月xx日统一更改为Gitlink中文名确实开源届时平台域名将统一进行更换更换规则如下
</div>
<div className="realmName">
<ul>
<li>原域名</li>
<li>官网顶级域名https://www.trustie.net</li>
<li>版本库子域名https://forgeplus.trustie.net</li>
<li>论坛子域名https://forum.trustie.net/forums</li>
</ul>
<ul>
<li>更换后域名</li>
<li>官网顶级域名https://www.gitlink.org.cn</li>
<li>版本库子域名https://www.git.gitlink.org.cn</li>
<li>论坛子域名https://forum.gitlink.org.cn</li>
</ul>
</div>
<div className="nSubdesc">
自2021年10月xx日起旧域名将停止访问因平台名称与域名变更给您带来的不便我们深表歉意!非常感谢您一直以来对本平台的信任与支持我们将一如既往地为您提供优质的服务 特此通知!
</div>
<div className="nInfo">
<p>Gitlink运营团队</p>
<p>2021年10月xx日</p>
</div>
</div> */}
<RenderHtml className="break_word_comments imageLayerParent" value={system_notification && system_notification.content} url={history.location}/>
<div className="nBtn">
<Button type="primary" className="btnblue" onClick={sureContinue}>确认并继续</Button>
</div>
</div>
</div>
</Modal>
)
}
export default SystemNotice;

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

View File

@ -0,0 +1,72 @@
import React , { useEffect , useState } from 'react';
import Modals from '../PublicModal/Index';
import { Button } from 'antd';
import axios from 'axios';
import ProfileImg from './images/profile.png';
import './Index.scss';
function ProfileModal({visible,onCancel,history}) {
const [ modalVis , setModalVis ] = useState(visible);
const [ addMemberCheck , setAddMemberCheck ] = useState(false);
useEffect(()=>{
axios.interceptors.response.use((response) => {
if (response && (response.data.status === 411 || response.data.status === 412)) {
setModalVis(true);
if(response.data.status === 412){
setAddMemberCheck(true);
}
}
return response;
}, (error) => {
});
},[])
useEffect(()=>{
setModalVis(visible);
},[visible])
function onOk(){
onCancel();
setModalVis(false);
setTimeout(function(){
window.open(`/settings/profile`,"_blank");
},200)
}
function onNo() {
onCancel();
setModalVis(false);
}
return(
<Modals
title="完善资料"
onCancel={onNo}
visible={modalVis}
btn={
addMemberCheck?
<div>
<Button type={'primary'} size={"large"} onClick={onNo}>好的</Button>
</div>
:
<div>
<Button size={"large"} onClick={onNo}>暂不补充</Button>
<Button type={'primary'} size={"large"} onClick={onOk}>好的</Button>
</div>
}
>
<div className="contents">
<img src={ProfileImg} alt=""/>
{
addMemberCheck ?
<p>目标用户个人资料不完整需提醒目标用户补充资料后以进行后续操作</p>
:
<p>您目前的个人资料不完整需要补充资料以进行后续操作是否前往补充个人信息</p>
}
</div>
</Modals>
)
}
export default ProfileModal;

View File

@ -0,0 +1,18 @@
.contents{
display: flex;
align-items: center;
justify-content: center;
margin:10px auto 0px;
img{
margin-right: 13px;
width: 44px;
}
p{
line-height: 29px;
max-width: 327px;
font-size: 16px!important;
}
}
.font-44{
font-size: 44px!important;
}

View File

@ -0,0 +1,17 @@
import React from 'react';
function Profile({children,sureFunc,showCompeleteDialog , completeProfile, className}) {
function checkProfile() {
if(!completeProfile){
showCompeleteDialog && showCompeleteDialog();
}else{
sureFunc();
}
}
return(
<a className={className} onClick={checkProfile}>{children}</a>
)
}
export default Profile;

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -0,0 +1,20 @@
import React from 'react';
import { Modal } from 'antd';
import './Index.scss';
function Modals({title,children,btn,onCancel,visible}) {
return(
<Modal
visible={visible}
onCancel={onCancel}
title={title}
width={"520px"}
footer={btn}
centered={true}
wrapClassName={"deleteBox"}
>
{children}
</Modal>
)
}
export default Modals;

View File

@ -0,0 +1,75 @@
.deleteBox{
z-index: 1033;
.ant-modal-close-x{
font-size: 17px!important;
}
.ant-modal-header{
background-color: #f8f8f8;
padding:10px 30px;
.ant-modal-title{
text-align: left;
font-size: 16px;
font-weight: bold;
}
}
.ant-modal-close{
top:0px !important;
font-size: 24px !important;
}
.ant-modal-body{
padding:30px 50px;
p{
font-size: 14px;
line-height: 26px;
color:#666;
word-break: break-all;
}
.desc{
.descMain{
align-items: center;
justify-content: center;
font-size: 20px;
margin-bottom: 10px;
i.red{
color:#DF0002;
}
}
}
}
.ant-modal-footer{
border-top: none;
text-align: center;
padding-bottom: 40px;
button,a{
width: 96px;
height: 32px;
margin:0px 20px;
font-weight: 400;
font-size: 14px;
&.ant-btn{
border-color: #D0D0D0;
color: #666;
&:hover,&:active,&:focus{
background: #f3f4f6;
}
}
&.ant-btn-danger{
background-color: #fff;
color: #DF0002;
border-color: #D0D0D0;
&:hover,&:active,&:focus{
border-color: #DF0002;
background-color: #fff;
}
}
&.ant-btn.ant-btn-primary{
background-color: #466AFF;
color: #fff;
border-color: #466AFF;
&:hover,&:focus,&:active{
background-color: rgba(70,106,255,0.85);
}
}
}
}
}

View File

@ -1,38 +1,35 @@
import React from 'react'; import React from 'react';
import { AlignCenter , AlignTop , FlexAJ } from '../Component/layout'; import { AlignTop } from '../Component/layout';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
function Releases({owner,projectsId,releaseVersions}){ function Releases({ owner, projectsId, releaseVersions, distribution }) {
return( return(
<div> <div>
<FlexAJ> <Link to={`/${owner}/${projectsId}/releases`} className="font-16 color-ooo hoverA">
<AlignCenter><span className="font-16 color-grey-6">发行版</span> <span>发行版</span>
{ releaseVersions && releaseVersions.total_count > 0 && <span className="infoCount">{releaseVersions.total_count}</span>} { releaseVersions && releaseVersions.total_count > 0 && <span className="infoCount">{releaseVersions.total_count}</span>}
</AlignCenter> </Link>
{ releaseVersions && releaseVersions.total_count > 0 ?
<Link className="font-12 color-grey-9" to={`/projects/${owner}/${projectsId}/releases`}>全部</Link>
:
<Link className="font-12 color-blue" to={`/projects/${owner}/${projectsId}/releases/new`}>新建</Link>
}
</FlexAJ>
{ {
releaseVersions && releaseVersions.total_count>0 ? releaseVersions && releaseVersions.total_count>0 ?
releaseVersions.list.map((item,key)=>{ releaseVersions.list.map((item,key)=>{
return( return(
key === 0 &&<AlignTop className="mt10"> key === 0 &&<AlignTop className="mt10">
<i className="iconfont icon-biaoqian3 color-grey-6 font-18 mr10"></i>
<div> <div>
<p className="font-16 color-grey-6"> <p className="font-16 color-grey-6" style={{display:'flex',alignItems:'center'}}>
<Link to={`/projects/${owner}/${projectsId}/releases`}>{item.name}</Link> {/* 如果是点击最新则发行版列表页只展示最新的一个 */}
<Link to={{pathname:`/${owner}/${projectsId}/releases`,query:{turnFromNew:true}}} style={{maxWidth:'200px',overflow: 'hidden',whiteSpace: 'nowrap',textOverflow:'ellipsis'}}>{item.name}</Link>
<span className="font-12 laterest ml5">最新</span> <span className="font-12 laterest ml5">最新</span>
</p> </p>
<p className="color-grey-9 font-13">{item.created_at}</p> <p className="color-grey-3 font-12">{item.created_at}</p>
</div> </div>
</AlignTop> </AlignTop>
) )
}) })
:"" :
<div className="mt8">
您暂未发布任何版本
{distribution && <Link className="color-blue ml20" to={{pathname:`/${owner}/${projectsId}/releases/new`,state:{stable:true}}}>创建新版本</Link>}
</div>
} }
</div> </div>

View File

@ -0,0 +1,120 @@
import React, { useEffect, useState } from 'react';
import { Popover , Tooltip } from 'antd';
import './Component.scss';
import axios from 'axios';
import ShareModal from './SiderBarShareModal';
const $ = window.$;
$(window).scroll(function () {
if ($(".gotop").length > 0) {
if ($(document).scrollTop() > 0) {
$(".-task-sidebar .gotop").show();
$(".gotop").click(function () {
$("html,body").scrollTop(0);
});
}
if ($(document).scrollTop() === 0) {
$(".-task-sidebar .gotop").hide();
}
}
});
function SiderBar() {
const [ data , setData ] = useState([]);
const [ visible , setVisible ] = useState(false);
const [ login , setLogin ]= useState(false);
useEffect(()=>{
getFAQ();
getCurrentUser();
//页面加载完成之后隐藏回到顶点
$(".-task-sidebar .gotop").hide();
},[])
function getFAQ(){
const url = `/faqs.json`;
axios.get(url).then(result=>{
if(result && result.data){
setData(result.data);
}
}).catch(error=>{})
}
//获取当前登录账号信息->用于建议反馈
function getCurrentUser(){
let url = `/users/get_user_info.json`;
axios.get(url).then((response) => {
if (response && response.data && response.data.login) {
setLogin(response.data.login);
}
}).catch(error=>{})
}
function content(list){
return <div>
<ul className="faqUl">
{
list && list.map((i,k)=>{
return(
<li key={i.question+k}><a href={`${i.url}`} title={i.question} target="_blank">{i.question}</a></li>
)
})
}
</ul>
</div>
}
function shareContent(){
return <div>
<ul className="shareUl">
<p className="titlecontent">分享到</p>
<li onClick={()=>setVisible(true)}><i className="iconfont icon-weixin2" style={{color:"#62b900"}}></i></li>
</ul>
</div>
}
return (
<div className={"-task-sidebar"} >
{/* 平台反馈 */}
<Tooltip title="意见反馈" placement={"left"} overlayClassName="tooltipBox">
<div className="consult">
<a href={login ? `/Gitlink/forgeplus/issues/new?type=feedback`:`/login?go_page=/Gitlink/forgeplus/issues/new?type=feedback`}>
<i className="iconfont icon-yijianfankui2"></i>
</a>
</div>
</Tooltip>
{/* 帮助 */}
{
data && data.length > 0 && (data[0] && data[0].question) ?
<Popover title="帮助" content={content(data)} overlayClassName="helpBox" placement={"left"}>
<div className="feedback">
<i className="iconfont icon-bangzhu1 font-22"></i>
</div>
</Popover>
:""
}
{/* 分享 */}
{/* <div className="scan pr" title="">
<span className="inline erweima"><i className="iconfont icon-erweima color-white font-22 fl"></i></span>
</div>*/}
<ShareModal visible={visible} urlValue={window.location.href} onCancel={()=>setVisible(false)}/>
<Popover content={shareContent()} overlayClassName="helpBox shareContent" placement={"left"}>
<div className="consult">
<i className="iconfont icon-fenxiang"></i>
</div>
</Popover>
{/* 返回顶部 */}
<Tooltip title="返回顶部" placement={"left"} overlayClassName="tooltipBox">
<div className="gotop">
<a><i className="iconfont icon-huidaodingbu1"></i></a>
</div>
</Tooltip>
</div>
)
}
export default SiderBar;

View File

@ -0,0 +1,27 @@
import React from 'react';
import { Modal } from 'antd';
import QRCode from 'qrcode.react';
function SiderBarShareModal({visible,urlValue,onCancel}) {
return(
<Modal
title={"分享到微信"}
visible={visible}
width="500px"
closable={true}
footer={false}
onCancel={onCancel}
>
<div style={{textAlign:"center"}}>
{urlValue &&<QRCode
value={urlValue}
size={200}
fgColor="#000000"
style={{margin:"0 20px 20px"}}
/>}
<p>打开微信扫一扫点击右上角菜单即可将网页分享至朋友圈</p>
</div>
</Modal>
)
}
export default SiderBarShareModal;

View File

@ -2,9 +2,9 @@ import React from 'react';
import {Popover} from 'antd'; import {Popover} from 'antd';
import './Component.scss'; import './Component.scss';
export default (({menu , children})=>{ export default (({menu , children, overlayClassName})=>{
return( return(
<Popover content={menu} trigger={['click']} placement='bottom'> <Popover content={menu} trigger={['click']} placement='bottom' overlayClassName={overlayClassName}>
{children} {children}
</Popover> </Popover>
) )

View File

@ -5,7 +5,7 @@ const Nav = styled.div`{
background-color:#fff; background-color:#fff;
padding:20px 30px; padding:20px 30px;
border-bottom:1px solid #eee; border-bottom:1px solid #eee;
font-size:16px; font-size:18px;
color:#333; color:#333;
display:flex; display:flex;
justify-content: space-between; justify-content: space-between;

View File

@ -5,6 +5,7 @@ import { Link } from 'react-router-dom';
export default ({ url , name , column , id , login })=>{ export default ({ url , name , column , id , login })=>{
const Img = styled.span` const Img = styled.span`
display:flex; display:flex;
font-weight: bold;
${column && "flex-direction: column;text-align:center;"} ${column && "flex-direction: column;text-align:center;"}
align-items: center; align-items: center;
& img{ & img{
@ -20,7 +21,7 @@ export default ({ url , name , column , id , login })=>{
`; `;
return( return(
id? id?
<Link to={`/users/${login}`}> <Link to={`/${login}`}>
<Img> <Img>
{ url && <img src={url} alt=""/> } { url && <img src={url} alt=""/> }
<span>{name}</span> <span>{name}</span>

View File

@ -7,6 +7,8 @@ export const Banner = styled.div`{
border-bottom:1px solid #eee; border-bottom:1px solid #eee;
background-color:#fff; background-color:#fff;
border-radius:5px 5px 0px 0px; border-radius:5px 5px 0px 0px;
justify-content: space-between;
display: flex;
}` }`
export const AlignCenterBetween = styled.div`{ export const AlignCenterBetween = styled.div`{
display:flex; display:flex;
@ -28,6 +30,11 @@ export const AlignTop = styled.div`{
display:flex; display:flex;
align-items: flex-start; align-items: flex-start;
}` }`
export const AlignAJBottom = styled.div`{
display:flex;
justify-content: space-between;
align-items: flex-end;
}`
// //
export const Box = styled.div`{ export const Box = styled.div`{
display:flex; display:flex;

View File

@ -36,15 +36,15 @@ function About(props, ref) {
const [ disabled, setDisabled ] = useState(false); const [ disabled, setDisabled ] = useState(false);
const [ typeFlag, setTypeFlag] = useState(false); const [ typeFlag, setTypeFlag] = useState(false);
const AuthorLogin = props.projectDetail && props.projectDetail.author && props.projectDetail.author.login; const isPermission = props.projectDetail && props.projectDetail.permission && props.projectDetail.permission!=="Reporter";
const CurrentLogin = props.current_user && props.current_user.login; const CurrentLogin = props.current_user && props.current_user.login;
useEffect(()=>{ useEffect(()=>{
if(CurrentLogin === AuthorLogin){ if(isPermission){
auth('get'); auth('get');
}else{ }else{
setIsSpining(false); setIsSpining(false);
} }
},[AuthorLogin,CurrentLogin]) },[isPermission,CurrentLogin])
function auth(type){ function auth(type){
const url = `/${owner}/${projectsId}/ci_authorize.json`; const url = `/${owner}/${projectsId}/ci_authorize.json`;
@ -149,7 +149,7 @@ function About(props, ref) {
axios.post(url).then(result=>{ axios.post(url).then(result=>{
setIsSpining(false); setIsSpining(false);
if(result && result.data.status === 0){ if(result && result.data.status === 0){
props.history.push(`/projects/${owner}/${projectsId}/devops/dispose`); props.history.push(`/${owner}/${projectsId}/devops`);
// open_devops // open_devops
let { changeOpenDevops } = props; let { changeOpenDevops } = props;
changeOpenDevops && changeOpenDevops(true); changeOpenDevops && changeOpenDevops(true);
@ -167,17 +167,17 @@ function About(props, ref) {
<img src={activate} alt="" width="250px" /> <img src={activate} alt="" width="250px" />
<P>定义DevOps工作流帮助您检测bug发布代码</P> <P>定义DevOps工作流帮助您检测bug发布代码</P>
{ {
CurrentLogin !== AuthorLogin ? !isPermission ?
<div className="noOperation">DevOps开启功能暂未对项目创建者以外的角色开放可以联系项目创建者进行开启开启后便可查看构建信息</div>:"" <div className="noOperation">DevOps开启功能暂未对项目创建者以外的角色开放可以联系项目创建者进行开启开启后便可查看构建信息</div>:""
} }
<a href={"https://forum.trustie.net/forums/3110/detail"} target="_blank" style={{ color: "#5091FF"}}> <a href={"https://forum.trustie.net/forums/3110/detail"} target="_blank" style={{ color: "#5091FF"}}>
了解什么是DevOps 了解什么是DevOps
</a> </a>
<a href={"https://forum.trustie.net/forums/3080/detail"} target="_blank" style={{ color: "#5091FF"}}> <a href={"https://forum.trustie.net/forums/3080/detail"} target="_blank" style={{ color: "#5091FF"}}>
如何使用DevOps 如何使用引擎Engine功能
</a> </a>
{ {
AuthorLogin === CurrentLogin ? isPermission ?
<React.Fragment> <React.Fragment>
{ {
step === 0 && !typeFlag ? step === 0 && !typeFlag ?

View File

@ -96,7 +96,7 @@ function Dispose(props){
setVisible(false); setVisible(false);
if(result && result.data){ if(result && result.data){
props.showNotification("流水线新增成功,请进行工作流配置!"); props.showNotification("流水线新增成功,请进行工作流配置!");
props.history.push(`/projects/${owner}/${projectsId}/devops/dispose/${result.data.id}`); props.history.push(`/${owner}/${projectsId}/devops/${result.data.id}`);
}else{ }else{
props.showNotification("流水线新增失败,请稍后再试!"); props.showNotification("流水线新增失败,请稍后再试!");
} }
@ -134,12 +134,12 @@ function Dispose(props){
// //
function toModalManage(){ function toModalManage(){
props.history.push(`/projects/${owner}/${projectsId}/devops/mould`); props.history.push(`/${owner}/${projectsId}/devops/mould`);
} }
// //
function toparameter(){ function toparameter(){
props.history.push(`/projects/${owner}/${projectsId}/devops/params`); props.history.push(`/${owner}/${projectsId}/devops/params`);
} }
const operate = current_user && (permission && permission !== "Reporter"); const operate = current_user && (permission && permission !== "Reporter");

View File

@ -1,6 +1,7 @@
import React from 'react'; import React from 'react';
import { Table , Popconfirm } from 'antd'; import { Table , Popconfirm } from 'antd';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { turnbar } from "educoder";
// const STATUS = { // const STATUS = {
// running:"", // running:"",
@ -65,8 +66,9 @@ function List({ list, operate , projectsId , owner , showModal , deleteFunc }){
width:"15%", width:"15%",
ellipsis:true, ellipsis:true,
render:(value,item)=>{ render:(value,item)=>{
let v = turnbar(item.branch);
return( return(
<Link to={`/projects/${owner}/${projectsId}/tree/${item.branch}/${value}`} className="color-blue">{value}</Link> <Link to={`/${owner}/${projectsId}/tree/${v}/${value}`} className="color-blue">{value}</Link>
) )
} }
}, },
@ -110,7 +112,7 @@ function List({ list, operate , projectsId , owner , showModal , deleteFunc }){
return( return(
<span> <span>
{ operate ? { operate ?
<Link to={`/projects/${owner}/${projectsId}/devops/dispose/${item.id}`} className="mr10 color-grey-6"> <Link to={`/${owner}/${projectsId}/devops/${item.id}`} className="mr10 color-grey-6">
<i className="iconfont icon-zaibianji font-13 mr3"></i>编辑</Link> :"" <i className="iconfont icon-zaibianji font-13 mr3"></i>编辑</Link> :""
} }
{ operate ? { operate ?
@ -118,7 +120,7 @@ function List({ list, operate , projectsId , owner , showModal , deleteFunc }){
<a className="mr10 color-grey-6"><i className="iconfont icon-lajitong font-13 mr3"></i>删除</a> <a className="mr10 color-grey-6"><i className="iconfont icon-lajitong font-13 mr3"></i>删除</a>
</Popconfirm>:"" </Popconfirm>:""
} }
<Link to={`/projects/${owner}/${projectsId}/devops/list/${item.branch}`} className="color-grey-6"><i className="iconfont icon-yunhang font-13 mr3"></i>查看运行记录</Link> <Link to={`/${owner}/${projectsId}/devops/list/${item.branch}`} className="color-grey-6"><i className="iconfont icon-yunhang font-13 mr3"></i>查看运行记录</Link>
</span> </span>
) )
} }

View File

@ -42,7 +42,7 @@ function PipelineName({visible,onCancel,onOk,value ,branchList}){
</div> </div>
<div className="choosenList mt20"> <div className="choosenList mt20">
<span>触发条件:</span> <span>触发条件:</span>
<Select value={branchValue} style={{width:"150px"}} onChange={(e)=>setBranchValue(e)}> <Select value={branchValue} style={{width:"150px"}} dropdownClassName="chooseCon" onChange={(e)=>setBranchValue(e)}>
{ {
branchList && branchList.length>0 && branchList.map((item,key)=>{ branchList && branchList.length>0 && branchList.map((item,key)=>{
return( return(
@ -51,7 +51,7 @@ function PipelineName({visible,onCancel,onOk,value ,branchList}){
}) })
} }
</Select> </Select>
<Select mode="multiple" allowClear value={eventValue} style={{width:"180px",marginLeft:"10px"}} onChange={(e)=>{console.log(e);setEventValue(e)}}> <Select mode="multiple" allowClear value={eventValue} dropdownClassName="chooseCon" style={{width:"180px",marginLeft:"10px"}} onChange={(e)=>{setEventValue(e)}}>
{ {
EVENT.map((item,key)=>{ EVENT.map((item,key)=>{
return( return(

View File

@ -17,7 +17,7 @@ function Sure({datas , name , saveFunc , sureSubmit , loading}){
return( return(
<div> <div>
<div style={{padding:"0px 15px 15px 15px"}}> <div style={{padding:"0px 15px 15px 15px"}}>
工作流名称{name} 水线名称{name}
</div> </div>
<div className="editorBody" style={{marginTop:"0px"}}> <div className="editorBody" style={{marginTop:"0px"}}>
<Editors value={value} theme={"vs-grey"} height={"600px"} visible/> <Editors value={value} theme={"vs-grey"} height={"600px"} visible/>

View File

@ -5,7 +5,7 @@ import { AlignCenterBetween , Blueline , FlexAJ } from '../../Component/layout';
function head({manager , parameter}){ function head({manager , parameter}){
return( return(
<AlignCenterBetween> <AlignCenterBetween>
<span className="font-20">工作流配置</span> <span className="font-20">引擎配置</span>
<FlexAJ> <FlexAJ>
{ {
parameter && <Blueline onClick={parameter}>参数管理</Blueline> parameter && <Blueline onClick={parameter}>参数管理</Blueline>

View File

@ -36,39 +36,37 @@ export default ((props)=>{
return( return(
<WhiteBack className="opsPanel"> <WhiteBack className="opsPanel">
<Switch {...props}> <Switch {...props}>
<Route path="/projects/:owner/:projectsId/devops/dispose/:disposeId"
render={ <Route path="/:owner/:projectsId/devops/params"
(p) => (<New {...props} {...p}/>)
}
></Route>
<Route path="/projects/:owner/:projectsId/devops/params"
render={ render={
(p) => (<Params {...props} {...p}/>) (p) => (<Params {...props} {...p}/>)
} }
></Route> ></Route>
<Route path="/projects/:owner/:projectsId/devops/mould" <Route path="/:owner/:projectsId/devops/mould"
render={ render={
(p) => (<Mould {...props} {...p}/>) (p) => (<Mould {...props} {...p}/>)
} }
></Route> ></Route>
<Route path="/projects/:owner/:projectsId/devops/dispose/new" <Route path="/:owner/:projectsId/devops/new"
render={ render={
(p) => (<New {...props} {...p}/>) (p) => (<New {...props} {...p}/>)
} }
></Route> ></Route>
<Route path="/projects/:owner/:projectsId/devops/dispose"
render={ <Route path="/:owner/:projectsId/devops/list/:branch"
(p) => (<Dispose {...props} {...p}/>)
}
></Route>
<Route path="/projects/:owner/:projectsId/devops/list/:branch"
render={ render={
(p) => (<Stucture {...props} {...p}/>) (p) => (<Stucture {...props} {...p}/>)
} }
></Route> ></Route>
<Route path="/projects/:owner/:projectsId/devops" <Route path="/:owner/:projectsId/devops/:disposeId"
render={ render={
(p) => (<About {...props} {...p}/>) (p) => (<New {...props} {...p}/>)
}
></Route>
{/* 原本的两种合为一个 */}
<Route path="/:owner/:projectsId/devops"
render={
(p) =>{return( p.location && p.location.state && p.location.state.open_devops?<Dispose {...props} {...p}/>:<About {...props} {...p}/>)}
} }
></Route> ></Route>
</Switch> </Switch>

Some files were not shown because too many files have changed in this diff Show More