Compare commits

...

544 Commits

Author SHA1 Message Date
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
谢思 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
谢思 982536b547 关于我们0.1版 2021-11-23 17:30:05 +08:00
jasder d5b4c5425f Merge pull request 'wip' (#235) from pre_develop_dev into pre_develop 2021-10-28 17:48:03 +08:00
jasder 56946f94e8 更改域名相关信息 2021-10-28 17:29:35 +08:00
caishi 61ee3fe36f 注册页面相关信息修改 2021-10-28 17:25:50 +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
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
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
谢思 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
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
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
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
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
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
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
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
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
caishi fe4c5a79d2 仓库设置-可修改项目标识 2021-10-13 09:57: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
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
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
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
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
谢思 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
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
谢思 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
谢思 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
yystopf bcde15cec1 需求更改
同步镜像调用websockt,成功后刷新页面;
合并请求可选标签,仓库设置类别、语言可选
2021-09-17 09:43:31 +08:00
caishi 23b423a32d 同步镜像点击事件,设置和合并请求编辑的可选项 2021-09-17 09:34:24 +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 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
何童崇 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 3294d99516 href 2021-08-09 11:03:49 +08:00
caishi 4d652d238d 不能修改组织账号 2021-04-27 17:25:00 +08:00
caishi 6da4dbc165 组织团队-无数据显示错误 2021-04-27 09:45:14 +08:00
caishi f65f4c273a 组织基本设置-正则和新建的页面不一致 2021-04-26 16:32:12 +08:00
caishi 1af504825c 代码库编辑文件-切换到其它目录后要重新将编辑状态改为显示状态 2021-04-25 18:00:05 +08:00
caishi e94cf68cc5 样式覆盖 2021-04-23 18:04:49 +08:00
caishi 5fa2fd99b9 Merge branch 'develop' 2021-04-23 14:51:04 +08:00
caishi 20ab8a6683 Merge branch 'develop' 2021-04-23 14:47:50 +08:00
caishi a7f709a663 Merge branch 'develop' 2021-04-23 14:16:30 +08:00
caishi 63c2cfed70 Merge branch 'develop' 2021-04-22 10:58:30 +08:00
caishi 80cd6fbae0 md文件要用Markdown渲染 2021-04-20 15:33:21 +08:00
caishi 49d3db6746 合并请求-提出申请者头像显示问题 2021-04-20 11:18:44 +08:00
caishi bc11ec68e3 注释 2021-04-20 10:57:46 +08:00
caishi 2d2deec224 Merge branch 'develop' 2021-04-20 10:56:50 +08:00
caishi 8c58f77afb 去掉右侧悬浮手册按钮 2021-04-09 14:18:44 +08:00
333 changed files with 12410 additions and 4804 deletions

File diff suppressed because it is too large Load Diff

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

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

View File

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

154
package-lock.json generated
View File

@ -1273,7 +1273,7 @@
},
"babel-cli": {
"version": "6.26.0",
"resolved": "https://registry.npm.taobao.org/babel-cli/download/babel-cli-6.26.0.tgz",
"resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
"integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
"dev": true,
"requires": {
@ -1296,7 +1296,7 @@
"dependencies": {
"chokidar": {
"version": "1.7.0",
"resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz?cache=0&sync_timestamp=1602585438968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-1.7.0.tgz",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
"dev": true,
"optional": true,
@ -1314,7 +1314,7 @@
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
}
@ -1413,7 +1413,7 @@
},
"babel-helper-bindify-decorators": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
"integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
"dev": true,
"requires": {
@ -1476,7 +1476,7 @@
},
"babel-helper-explode-class": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
"integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
"dev": true,
"requires": {
@ -1676,7 +1676,7 @@
},
"babel-plugin-syntax-async-generators": {
"version": "6.13.0",
"resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
"integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
"dev": true
},
@ -1687,7 +1687,7 @@
},
"babel-plugin-syntax-decorators": {
"version": "6.13.0",
"resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
"integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
"dev": true
},
@ -1723,7 +1723,7 @@
},
"babel-plugin-transform-async-generator-functions": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
"integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
"dev": true,
"requires": {
@ -1755,7 +1755,7 @@
},
"babel-plugin-transform-decorators": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
"integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
"dev": true,
"requires": {
@ -2060,7 +2060,7 @@
},
"babel-plugin-transform-runtime": {
"version": "6.23.0",
"resolved": "https://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
"integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
"requires": {
"babel-runtime": "^6.22.0"
@ -2077,7 +2077,7 @@
},
"babel-polyfill": {
"version": "6.26.0",
"resolved": "https://registry.npm.taobao.org/babel-polyfill/download/babel-polyfill-6.26.0.tgz",
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
"integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
"requires": {
"babel-runtime": "^6.26.0",
@ -2087,7 +2087,7 @@
"dependencies": {
"regenerator-runtime": {
"version": "0.10.5",
"resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz?cache=0&sync_timestamp=1595456367497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.10.5.tgz",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
"integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
}
}
@ -2131,7 +2131,7 @@
},
"babel-preset-es2015": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-preset-es2015/download/babel-preset-es2015-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
"integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
"dev": true,
"requires": {
@ -2179,7 +2179,7 @@
},
"babel-preset-react": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-preset-react/download/babel-preset-react-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
"integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
"requires": {
"babel-plugin-syntax-jsx": "^6.3.13",
@ -2212,7 +2212,7 @@
},
"babel-preset-stage-2": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
"integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
"dev": true,
"requires": {
@ -2224,7 +2224,7 @@
},
"babel-preset-stage-3": {
"version": "6.24.1",
"resolved": "https://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.24.1.tgz",
"resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
"integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
"dev": true,
"requires": {
@ -3425,9 +3425,9 @@
"integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
},
"clipboard": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz",
"integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==",
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz",
"integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==",
"requires": {
"good-listener": "^1.2.2",
"select": "^1.1.2",
@ -3507,7 +3507,7 @@
},
"code-prettify": {
"version": "0.1.0",
"resolved": "https://registry.npm.taobao.org/code-prettify/download/code-prettify-0.1.0.tgz",
"resolved": "https://registry.npmjs.org/code-prettify/-/code-prettify-0.1.0.tgz",
"integrity": "sha1-RocMyMGlDQm61TmzOpg9vUqjSx4="
},
"codemirror": {
@ -3811,6 +3811,11 @@
"require-from-string": "^1.1.0"
}
},
"countup.js": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.0.8.tgz",
"integrity": "sha512-pW3xwwD+hB+xmtI16xFcuLS0D5hSQqPQWkZOdgpKQyzxCquDNo2VCFPkRw12vmvdpnicXVTcjmYiakG6biwINg=="
},
"create-ecdh": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
@ -3875,6 +3880,52 @@
"warning": "^4.0.3"
}
},
"cross-env": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
"integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
"requires": {
"cross-spawn": "^7.0.1"
},
"dependencies": {
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
"integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
"which": "^2.0.1"
}
},
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"requires": {
"shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"requires": {
"isexe": "^2.0.0"
}
}
}
},
"cross-fetch": {
"version": "3.1.4",
"resolved": "https://registry.nlark.com/cross-fetch/download/cross-fetch-3.1.4.tgz",
@ -7240,8 +7291,7 @@
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"optional": true
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"aproba": {
"version": "1.2.0",
@ -7262,14 +7312,12 @@
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"optional": true
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -7284,20 +7332,17 @@
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"optional": true
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"optional": true
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"optional": true
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"core-util-is": {
"version": "1.0.2",
@ -7414,8 +7459,7 @@
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"optional": true
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
"version": "1.3.5",
@ -7427,7 +7471,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@ -7442,7 +7485,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@ -7450,14 +7492,12 @@
"minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"optional": true
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
"minipass": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
"integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@ -7476,7 +7516,6 @@
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz",
"integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==",
"optional": true,
"requires": {
"minimist": "^1.2.5"
}
@ -7538,8 +7577,7 @@
"npm-normalize-package-bin": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
"integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
"optional": true
"integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
},
"npm-packlist": {
"version": "1.4.8",
@ -7567,8 +7605,7 @@
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"optional": true
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"object-assign": {
"version": "4.1.1",
@ -7580,7 +7617,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"optional": true,
"requires": {
"wrappy": "1"
}
@ -7658,8 +7694,7 @@
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"optional": true
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
@ -7695,7 +7730,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@ -7715,7 +7749,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@ -7759,14 +7792,12 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"optional": true
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"optional": true
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
}
}
},
@ -11673,7 +11704,7 @@
},
"output-file-sync": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/output-file-sync/download/output-file-sync-1.1.2.tgz",
"resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
"integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
"dev": true,
"requires": {
@ -14931,6 +14962,14 @@
"object-assign": "^4.1.1"
}
},
"react-countup": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/react-countup/-/react-countup-6.1.0.tgz",
"integrity": "sha512-0tN65l4ksaNa4rm8ZKshpGxbIHQ4RAh8TGaKYp06EZ7nZw+haXpW3dQTVDhTey9+10jDkJgdzyXKDmC96c1M8g==",
"requires": {
"countup.js": "^2.0.8"
}
},
"react-datepicker": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-2.14.1.tgz",
@ -16586,6 +16625,11 @@
}
}
},
"save-dev": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/save-dev/-/save-dev-0.0.1-security.tgz",
"integrity": "sha512-k6knZTDNK8PKKbIqnvxiOveJinuw2LcQjqDoaorZWP9M5AR2EPsnpDeSbeoZZ0pHr5ze1uoaKdK8NBGQrJ34Uw=="
},
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@ -19100,7 +19144,7 @@
},
"user-home": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/user-home/download/user-home-1.1.1.tgz",
"resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
"integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
"dev": true
},
@ -19157,7 +19201,7 @@
},
"v8flags": {
"version": "2.1.1",
"resolved": "https://registry.npm.taobao.org/v8flags/download/v8flags-2.1.1.tgz?cache=0&sync_timestamp=1590964281452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8flags%2Fdownload%2Fv8flags-2.1.1.tgz",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
"integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
"dev": true,
"requires": {

View File

@ -22,10 +22,11 @@
"case-sensitive-paths-webpack-plugin": "2.1.1",
"chalk": "1.1.3",
"classnames": "^2.2.5",
"clipboard": "^2.0.6",
"clipboard": "^2.0.8",
"code-prettify": "^0.1.0",
"codemirror": "^5.53.0",
"connected-react-router": "4.4.1",
"cross-env": "^7.0.3",
"css-loader": "^3.5.2",
"dompurify": "^2.0.15",
"dotenv": "4.0.0",
@ -83,6 +84,7 @@
"react-color": "^2.18.0",
"react-content-loader": "^3.1.1",
"react-cookies": "^0.1.1",
"react-countup": "^6.1.0",
"react-datepicker": "^2.14.1",
"react-dev-utils": "^9.2.0-next.80",
"react-dom": "^16.13.1",
@ -103,6 +105,7 @@
"redux-thunk": "2.3.0",
"rsuite": "^4.3.4",
"sass-loader": "7.3.1",
"save-dev": "0.0.1-security",
"scroll-into-view": "^1.14.2",
"showdown": "^1.9.1",
"showdown-katex": "^0.8.0",
@ -122,8 +125,8 @@
},
"scripts": {
"start": "node --max_old_space_size=15360 scripts/start.js",
"build": "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",
"build": "cross-env NODE_ENV=production 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",
"gen_stats": "NODE_ENV=production webpack --profile --config=./config/webpack.config.prod.js --json > stats.json",
"ana": "webpack-bundle-analyzer ./stats.json",
@ -193,6 +196,7 @@
"babel-core": "^6.26.0",
"babel-plugin-import": "^1.13.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",

View File

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

View File

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

View File

@ -1,3 +1,4 @@
@charset "utf-8";
/* 头部 */
.header {
width: 100%;
@ -1271,7 +1272,7 @@ html body {
font-size: 14px;
line-height: 2.0;
background: #fafafa;
font-family: "微软雅黑", "宋体";
font-family: "Microsoft YaHei", "SimSun";
color: #05101a;
height: 100%;
position: relative;
@ -1307,6 +1308,7 @@ td,
span {
margin: 0;
padding: 0;
margin-bottom: 0px!important;
}
table,
@ -1363,10 +1365,6 @@ a:visited {
color: #05101a;
}
a:hover {
color: #459be5;
}
ol,
ul,
li {
@ -1473,7 +1471,7 @@ a.edu-txt-w80,
/*隐藏*/
.none {
display: none
display: none!important;
}
.block {
@ -1522,7 +1520,15 @@ a.edu-txt-w80,
.font-16 {
font-size: 16px !important;
}
.weight400{
font-weight: 400;
}
.weight500{
font-weight: 500;
}
.weight{
font-weight: bold;
}
.font-17 {
font-size: 17px !important;
}
@ -1542,6 +1548,9 @@ a.edu-txt-w80,
.font-25 {
font-size: 25px !important;
}
.font-26 {
font-size: 26px !important;
}
.font-24 {
font-size: 24px !important;
@ -1563,6 +1572,9 @@ a.edu-txt-w80,
font-size: 36px !important;
}
.font-40 {
font-size: 40px !important;
}
.font-50 {
font-size: 50px !important;
}
@ -1748,6 +1760,14 @@ a.decoration {
margin-bottom: 10px;
}
.mb12 {
margin-bottom: 12px;
}
.mb13 {
margin-bottom: 13px;
}
.mb14 {
margin-bottom: 14px;
}
@ -2436,7 +2456,11 @@ a.hoverLine:hover{
.color-grey-9 {
color: #999999 !important;
color: #999 !important;
}
a:hover{
color: #466AFF !important;
}
.color-grey-98 {
@ -2471,33 +2495,23 @@ a.hoverLine:hover{
a.color-grey-name:hover,
a.color-dark:hover,
a.color-grey-6:hover,
a.color-grey-3:hover {
color: #4cacff !important;
}
a.color-grey-9:hover,
a.color-grey-8:hover,
a.color-grey-c:hover {
color: #111C24 !important;
a.color-grey-3:hover,a.color-ooo:hover {
color: #2A61FF !important;
}
/*蓝色*/
.color-blue {
color: #4CACFF !important;
color: #2A61FF !important;
}
.color-blue-file {
color: #4598FA!important;
}
/* 绿色 */
.color-green-file{
color: #28BD6C;
}
/*主*/
.color-blue_4C {
color: #4CACFF !important;
}
a.color-blue:hover,
a.color-blue_4C:hover {
color: #459BE6 !important;
}
/*橙色*/
.color-orange {

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1627870211301') format('woff2'),
url('iconfont.woff?t=1627870211301') format('woff'),
url('iconfont.ttf?t=1627870211301') format('truetype');
src: url('iconfont.woff2?t=1632964996877') format('woff2'),
url('iconfont.woff?t=1632964996877') format('woff'),
url('iconfont.ttf?t=1632964996877') format('truetype');
}
.iconfont {
@ -13,6 +13,322 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-wenjian7:before {
content: "\e8e0";
}
.icon-xiangyoujiantou:before {
content: "\e8de";
}
.icon-xiangzuojiantou:before {
content: "\e8df";
}
.icon-a-liulanicon2x:before {
content: "\e8dd";
}
.icon-wenjianicon:before {
content: "\e8dc";
}
.icon-a-yuanquan2x:before {
content: "\e8db";
}
.icon-xiangmubiaoqian:before {
content: "\e8da";
}
.icon-icon:before {
content: "\e8ce";
}
.icon-tar:before {
content: "\e8cf";
}
.icon-a-fuzhi2:before {
content: "\e8d0";
}
.icon-fujian1:before {
content: "\e8d1";
}
.icon-a-bianji1:before {
content: "\e8d2";
}
.icon-banbenicon:before {
content: "\e8d3";
}
.icon-shanchuicon2:before {
content: "\e8d4";
}
.icon-a-lajitong_icon3x:before {
content: "\e8d5";
}
.icon-xialaanniu2:before {
content: "\e8d6";
}
.icon-xiazai-icon:before {
content: "\e8d7";
}
.icon-master_icon1:before {
content: "\e8d8";
}
.icon-shangchuanicon:before {
content: "\e8d9";
}
.icon-gerenziliao1:before {
content: "\e8c7";
}
.icon-lichengbeiicon:before {
content: "\e885";
}
.icon-cangkushezhiicon:before {
content: "\e889";
}
.icon-dongtaiicon:before {
content: "\e88a";
}
.icon-gongzuoliuicon:before {
content: "\e88b";
}
.icon-yixiuicon1:before {
content: "\e89b";
}
.icon-a-wikiicon1:before {
content: "\e8c6";
}
.icon-daimakuicon1:before {
content: "\e8c5";
}
.icon-wodetongzhi:before {
content: "\e8c8";
}
.icon-tongzhiguanli:before {
content: "\e8c9";
}
.icon-xuanzhong3:before {
content: "\e8ca";
}
.icon-xitongtongzhiicon:before {
content: "\e8cb";
}
.icon-xiaoxi2:before {
content: "\e8cc";
}
.icon-sshmiyue:before {
content: "\e8cd";
}
.icon-gerenziliao:before {
content: "\e8c4";
}
.icon-xinshouzhiyin:before {
content: "\e8e4";
}
.icon-xinjianxiangmu:before {
content: "\e8e6";
}
.icon-jiaruketang1:before {
content: "\e8e9";
}
.icon-xiangmugonggao:before {
content: "\e8c2";
}
.icon-chengguo:before {
content: "\e8c3";
}
.icon-chengjiaogonggao:before {
content: "\e8c0";
}
.icon-jishuzichan:before {
content: "\e8c1";
}
.icon-feibiaogonggao:before {
content: "\e8bc";
}
.icon-zhongbiaogonggao:before {
content: "\e8bd";
}
.icon-gengzhenggonggao:before {
content: "\e8be";
}
.icon-zhaobiaogonggao:before {
content: "\e8bf";
}
.icon-wenjian6:before {
content: "\e8ba";
}
.icon-wenjianjia4:before {
content: "\e8bb";
}
.icon-quxiaoguanzhu:before {
content: "\e89a";
}
.icon-dianzan_icon:before {
content: "\e8a2";
}
.icon-wenjian5:before {
content: "\e896";
}
.icon-wenjianjia3:before {
content: "\e8a9";
}
.icon-fuzhiicon:before {
content: "\e886";
}
.icon-zhuye-fill:before {
content: "\e876";
}
.icon-daimakuicon:before {
content: "\e884";
}
.icon-xinjian2:before {
content: "\e8b0";
}
.icon-xieyiicon:before {
content: "\e870";
}
.icon-neicunicon:before {
content: "\e891";
}
.icon-zishuwenjian_icon:before {
content: "\e8a6";
}
.icon-biaoqianicon:before {
content: "\e882";
}
.icon-a-bianji:before {
content: "\e883";
}
.icon-lianjieicon:before {
content: "\e887";
}
.icon-hebingqingqiuicon:before {
content: "\e888";
}
.icon-morendianzan_icon:before {
content: "\e88e";
}
.icon-muluicon:before {
content: "\e894";
}
.icon-a-shezhi:before {
content: "\e899";
}
.icon-tijiaoicon:before {
content: "\e89e";
}
.icon-morenguanzhu_ICON:before {
content: "\e89f";
}
.icon-xialaanniu1:before {
content: "\e8a4";
}
.icon-zuohuaicon:before {
content: "\e8b5";
}
.icon-master_icon:before {
content: "\e8b6";
}
.icon-morenfuke_icon:before {
content: "\e8b7";
}
.icon-a-wikiicon:before {
content: "\e8b8";
}
.icon-yixiuicon:before {
content: "\e8b9";
}
.icon-suofang:before {
content: "\e87f";
}
.icon-fangdaicon:before {
content: "\e881";
}
.icon-sousuo_icon1:before {
content: "\e873";
}
.icon-huanying_icon:before {
content: "\e878";
}
.icon-wenjianjia2:before {
content: "\e879";
}
.icon-shanchuicon1:before {
content: "\e87a";
}
.icon-qingqiuicon:before {
content: "\e871";
}
@ -49,22 +365,10 @@
content: "\e898";
}
.icon-xialaanniu_icon:before {
content: "\e89a";
}
.icon-weixuanzhongqingqiuicon:before {
content: "\e89b";
}
.icon-xiezuozheguanliicon:before {
content: "\e8a1";
}
.icon-xuanzhongxiangyingicon:before {
content: "\e8a2";
}
.icon-xuanzhongfenzhiicon:before {
content: "\e8a3";
}
@ -81,18 +385,6 @@
content: "\e8af";
}
.icon-xinzengmulu_xuantingicon:before {
content: "\e884";
}
.icon-xinzengyemian_morenicon:before {
content: "\e885";
}
.icon-zhankai_morenicon:before {
content: "\e889";
}
.icon-shanchu_tc_icon:before {
content: "\e88c";
}
@ -101,26 +393,14 @@
content: "\e88d";
}
.icon-xinzengyemian_shubiaodianjiicon:before {
content: "\e88e";
}
.icon-daorumoban_icon:before {
content: "\e86f";
}
.icon-daochu_xuanfu:before {
content: "\e870";
}
.icon-cuowu:before {
content: "\e872";
}
.icon-chenggong1:before {
content: "\e873";
}
.icon-gengduo_icon:before {
content: "\e874";
}
@ -129,26 +409,10 @@
content: "\e875";
}
.icon-fuzhi_icon:before {
content: "\e876";
}
.icon-shanchuicon:before {
content: "\e877";
}
.icon-a-lajitong_icon3x:before {
content: "\e878";
}
.icon-shouqi_morenicon:before {
content: "\e879";
}
.icon-huanying_icon:before {
content: "\e87a";
}
.icon-sousuo_shanchuicon:before {
content: "\e87b";
}
@ -161,22 +425,10 @@
content: "\e87e";
}
.icon-wenjianjia_icon:before {
content: "\e87f";
}
.icon-xialaanniu:before {
content: "\e880";
}
.icon-xinzengmulu_morenicon:before {
content: "\e882";
}
.icon-xinzengmulu_shubiaodianjiicon:before {
content: "\e883";
}
.icon-erciqueren_icon:before {
content: "\e867";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,559 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "24656750",
"name": "文件",
"font_class": "wenjian7",
"unicode": "e8e0",
"unicode_decimal": 59616
},
{
"icon_id": "630094",
"name": "向右箭头",
"font_class": "xiangyoujiantou",
"unicode": "e8de",
"unicode_decimal": 59614
},
{
"icon_id": "630095",
"name": "向左箭头",
"font_class": "xiangzuojiantou",
"unicode": "e8df",
"unicode_decimal": 59615
},
{
"icon_id": "24600282",
"name": "浏览icon@2x",
"font_class": "a-liulanicon2x",
"unicode": "e8dd",
"unicode_decimal": 59613
},
{
"icon_id": "24567893",
"name": "文件icon",
"font_class": "wenjianicon",
"unicode": "e8dc",
"unicode_decimal": 59612
},
{
"icon_id": "24527422",
"name": "圆圈@2x",
"font_class": "a-yuanquan2x",
"unicode": "e8db",
"unicode_decimal": 59611
},
{
"icon_id": "24378423",
"name": "项目标签",
"font_class": "xiangmubiaoqian",
"unicode": "e8da",
"unicode_decimal": 59610
},
{
"icon_id": "24368060",
"name": "icon",
"font_class": "icon",
"unicode": "e8ce",
"unicode_decimal": 59598
},
{
"icon_id": "24368061",
"name": "tar",
"font_class": "tar",
"unicode": "e8cf",
"unicode_decimal": 59599
},
{
"icon_id": "24289113",
"name": "复制 (2)",
"font_class": "a-fuzhi2",
"unicode": "e8d0",
"unicode_decimal": 59600
},
{
"icon_id": "24289114",
"name": "附件",
"font_class": "fujian1",
"unicode": "e8d1",
"unicode_decimal": 59601
},
{
"icon_id": "24289115",
"name": "编 辑",
"font_class": "a-bianji1",
"unicode": "e8d2",
"unicode_decimal": 59602
},
{
"icon_id": "24289116",
"name": "版本icon",
"font_class": "banbenicon",
"unicode": "e8d3",
"unicode_decimal": 59603
},
{
"icon_id": "24289117",
"name": "删除icon",
"font_class": "shanchuicon2",
"unicode": "e8d4",
"unicode_decimal": 59604
},
{
"icon_id": "24289118",
"name": "垃圾桶_icon@3x",
"font_class": "a-lajitong_icon3x",
"unicode": "e8d5",
"unicode_decimal": 59605
},
{
"icon_id": "24289119",
"name": "下拉按钮",
"font_class": "xialaanniu2",
"unicode": "e8d6",
"unicode_decimal": 59606
},
{
"icon_id": "24289120",
"name": "下载-icon",
"font_class": "xiazai-icon",
"unicode": "e8d7",
"unicode_decimal": 59607
},
{
"icon_id": "24289121",
"name": "master_icon",
"font_class": "master_icon1",
"unicode": "e8d8",
"unicode_decimal": 59608
},
{
"icon_id": "24289122",
"name": "上传icon",
"font_class": "shangchuanicon",
"unicode": "e8d9",
"unicode_decimal": 59609
},
{
"icon_id": "24059956",
"name": "个人资料",
"font_class": "gerenziliao1",
"unicode": "e8c7",
"unicode_decimal": 59591
},
{
"icon_id": "24059409",
"name": "里程碑icon",
"font_class": "lichengbeiicon",
"unicode": "e885",
"unicode_decimal": 59525
},
{
"icon_id": "24059410",
"name": "仓库设置icon",
"font_class": "cangkushezhiicon",
"unicode": "e889",
"unicode_decimal": 59529
},
{
"icon_id": "24059411",
"name": "动态icon",
"font_class": "dongtaiicon",
"unicode": "e88a",
"unicode_decimal": 59530
},
{
"icon_id": "24059412",
"name": "工作流icon",
"font_class": "gongzuoliuicon",
"unicode": "e88b",
"unicode_decimal": 59531
},
{
"icon_id": "24059413",
"name": "易修icon",
"font_class": "yixiuicon1",
"unicode": "e89b",
"unicode_decimal": 59547
},
{
"icon_id": "24059414",
"name": "wiki icon",
"font_class": "a-wikiicon1",
"unicode": "e8c6",
"unicode_decimal": 59590
},
{
"icon_id": "24047186",
"name": "代码库icon",
"font_class": "daimakuicon1",
"unicode": "e8c5",
"unicode_decimal": 59589
},
{
"icon_id": "24047189",
"name": "我的通知",
"font_class": "wodetongzhi",
"unicode": "e8c8",
"unicode_decimal": 59592
},
{
"icon_id": "24047190",
"name": "通知管理",
"font_class": "tongzhiguanli",
"unicode": "e8c9",
"unicode_decimal": 59593
},
{
"icon_id": "24047191",
"name": "选中",
"font_class": "xuanzhong3",
"unicode": "e8ca",
"unicode_decimal": 59594
},
{
"icon_id": "24047192",
"name": "系统通知icon",
"font_class": "xitongtongzhiicon",
"unicode": "e8cb",
"unicode_decimal": 59595
},
{
"icon_id": "24047193",
"name": "消息",
"font_class": "xiaoxi2",
"unicode": "e8cc",
"unicode_decimal": 59596
},
{
"icon_id": "24047194",
"name": "ssh密钥",
"font_class": "sshmiyue",
"unicode": "e8cd",
"unicode_decimal": 59597
},
{
"icon_id": "24014152",
"name": "个人资料",
"font_class": "gerenziliao",
"unicode": "e8c4",
"unicode_decimal": 59588
},
{
"icon_id": "23655968",
"name": "新手指引",
"font_class": "xinshouzhiyin",
"unicode": "e8e4",
"unicode_decimal": 59620
},
{
"icon_id": "23655969",
"name": "新建项目",
"font_class": "xinjianxiangmu",
"unicode": "e8e6",
"unicode_decimal": 59622
},
{
"icon_id": "23658111",
"name": "加入课堂",
"font_class": "jiaruketang1",
"unicode": "e8e9",
"unicode_decimal": 59625
},
{
"icon_id": "23791639",
"name": "项目公告",
"font_class": "xiangmugonggao",
"unicode": "e8c2",
"unicode_decimal": 59586
},
{
"icon_id": "23791640",
"name": "成果",
"font_class": "chengguo",
"unicode": "e8c3",
"unicode_decimal": 59587
},
{
"icon_id": "23791410",
"name": "成交公告",
"font_class": "chengjiaogonggao",
"unicode": "e8c0",
"unicode_decimal": 59584
},
{
"icon_id": "23791411",
"name": "技术资产",
"font_class": "jishuzichan",
"unicode": "e8c1",
"unicode_decimal": 59585
},
{
"icon_id": "23790928",
"name": "废标公告",
"font_class": "feibiaogonggao",
"unicode": "e8bc",
"unicode_decimal": 59580
},
{
"icon_id": "23790929",
"name": "中标公告",
"font_class": "zhongbiaogonggao",
"unicode": "e8bd",
"unicode_decimal": 59581
},
{
"icon_id": "23790930",
"name": "更正公告",
"font_class": "gengzhenggonggao",
"unicode": "e8be",
"unicode_decimal": 59582
},
{
"icon_id": "23790931",
"name": "招标公告",
"font_class": "zhaobiaogonggao",
"unicode": "e8bf",
"unicode_decimal": 59583
},
{
"icon_id": "23732532",
"name": "文件",
"font_class": "wenjian6",
"unicode": "e8ba",
"unicode_decimal": 59578
},
{
"icon_id": "23732533",
"name": "文件夹",
"font_class": "wenjianjia4",
"unicode": "e8bb",
"unicode_decimal": 59579
},
{
"icon_id": "23642443",
"name": "取消关注",
"font_class": "quxiaoguanzhu",
"unicode": "e89a",
"unicode_decimal": 59546
},
{
"icon_id": "23642444",
"name": "点赞_icon",
"font_class": "dianzan_icon",
"unicode": "e8a2",
"unicode_decimal": 59554
},
{
"icon_id": "23639530",
"name": "文件",
"font_class": "wenjian5",
"unicode": "e896",
"unicode_decimal": 59542
},
{
"icon_id": "23639533",
"name": "文件夹",
"font_class": "wenjianjia3",
"unicode": "e8a9",
"unicode_decimal": 59561
},
{
"icon_id": "23639440",
"name": "复制icon",
"font_class": "fuzhiicon",
"unicode": "e886",
"unicode_decimal": 59526
},
{
"icon_id": "23639422",
"name": "主页-fill",
"font_class": "zhuye-fill",
"unicode": "e876",
"unicode_decimal": 59510
},
{
"icon_id": "23639423",
"name": "代码库icon",
"font_class": "daimakuicon",
"unicode": "e884",
"unicode_decimal": 59524
},
{
"icon_id": "23572260",
"name": "新建",
"font_class": "xinjian2",
"unicode": "e8b0",
"unicode_decimal": 59568
},
{
"icon_id": "23567674",
"name": "协议icon",
"font_class": "xieyiicon",
"unicode": "e870",
"unicode_decimal": 59504
},
{
"icon_id": "23567675",
"name": "内存icon",
"font_class": "neicunicon",
"unicode": "e891",
"unicode_decimal": 59537
},
{
"icon_id": "23567676",
"name": "自述文件_icon",
"font_class": "zishuwenjian_icon",
"unicode": "e8a6",
"unicode_decimal": 59558
},
{
"icon_id": "23472253",
"name": "标签icon",
"font_class": "biaoqianicon",
"unicode": "e882",
"unicode_decimal": 59522
},
{
"icon_id": "23472254",
"name": "编 辑",
"font_class": "a-bianji",
"unicode": "e883",
"unicode_decimal": 59523
},
{
"icon_id": "23472258",
"name": "链接icon",
"font_class": "lianjieicon",
"unicode": "e887",
"unicode_decimal": 59527
},
{
"icon_id": "23472259",
"name": "合并请求icon",
"font_class": "hebingqingqiuicon",
"unicode": "e888",
"unicode_decimal": 59528
},
{
"icon_id": "23472263",
"name": "默认点赞_icon",
"font_class": "morendianzan_icon",
"unicode": "e88e",
"unicode_decimal": 59534
},
{
"icon_id": "23472265",
"name": "目录icon",
"font_class": "muluicon",
"unicode": "e894",
"unicode_decimal": 59540
},
{
"icon_id": "23472267",
"name": "设 置",
"font_class": "a-shezhi",
"unicode": "e899",
"unicode_decimal": 59545
},
{
"icon_id": "23472269",
"name": "提交icon",
"font_class": "tijiaoicon",
"unicode": "e89e",
"unicode_decimal": 59550
},
{
"icon_id": "23472270",
"name": "默认关注_ICON",
"font_class": "morenguanzhu_ICON",
"unicode": "e89f",
"unicode_decimal": 59551
},
{
"icon_id": "23472272",
"name": "下拉按钮",
"font_class": "xialaanniu1",
"unicode": "e8a4",
"unicode_decimal": 59556
},
{
"icon_id": "23472276",
"name": "左滑icon",
"font_class": "zuohuaicon",
"unicode": "e8b5",
"unicode_decimal": 59573
},
{
"icon_id": "23472277",
"name": "master_icon",
"font_class": "master_icon",
"unicode": "e8b6",
"unicode_decimal": 59574
},
{
"icon_id": "23472278",
"name": "默认复刻_icon",
"font_class": "morenfuke_icon",
"unicode": "e8b7",
"unicode_decimal": 59575
},
{
"icon_id": "23472279",
"name": "wiki icon",
"font_class": "a-wikiicon",
"unicode": "e8b8",
"unicode_decimal": 59576
},
{
"icon_id": "23472280",
"name": "易修icon",
"font_class": "yixiuicon",
"unicode": "e8b9",
"unicode_decimal": 59577
},
{
"icon_id": "23436350",
"name": "缩放",
"font_class": "suofang",
"unicode": "e87f",
"unicode_decimal": 59519
},
{
"icon_id": "23436351",
"name": "放大icon",
"font_class": "fangdaicon",
"unicode": "e881",
"unicode_decimal": 59521
},
{
"icon_id": "23384231",
"name": "搜索_icon",
"font_class": "sousuo_icon1",
"unicode": "e873",
"unicode_decimal": 59507
},
{
"icon_id": "23384232",
"name": "欢迎_icon",
"font_class": "huanying_icon",
"unicode": "e878",
"unicode_decimal": 59512
},
{
"icon_id": "23384233",
"name": "文件夹",
"font_class": "wenjianjia2",
"unicode": "e879",
"unicode_decimal": 59513
},
{
"icon_id": "23384234",
"name": "删除icon",
"font_class": "shanchuicon1",
"unicode": "e87a",
"unicode_decimal": 59514
},
{
"icon_id": "23261798",
"name": "请求icon",
@ -68,20 +621,6 @@
"unicode": "e898",
"unicode_decimal": 59544
},
{
"icon_id": "23144154",
"name": "下拉按钮_icon",
"font_class": "xialaanniu_icon",
"unicode": "e89a",
"unicode_decimal": 59546
},
{
"icon_id": "23144155",
"name": "未选中请求icon",
"font_class": "weixuanzhongqingqiuicon",
"unicode": "e89b",
"unicode_decimal": 59547
},
{
"icon_id": "23144158",
"name": "协作者管理icon",
@ -89,13 +628,6 @@
"unicode": "e8a1",
"unicode_decimal": 59553
},
{
"icon_id": "23144159",
"name": "选中响应icon",
"font_class": "xuanzhongxiangyingicon",
"unicode": "e8a2",
"unicode_decimal": 59554
},
{
"icon_id": "23144160",
"name": "选中分支icon",
@ -124,27 +656,6 @@
"unicode": "e8af",
"unicode_decimal": 59567
},
{
"icon_id": "23046282",
"name": "新增目录_悬停icon",
"font_class": "xinzengmulu_xuantingicon",
"unicode": "e884",
"unicode_decimal": 59524
},
{
"icon_id": "23046283",
"name": "新增页面_默认icon",
"font_class": "xinzengyemian_morenicon",
"unicode": "e885",
"unicode_decimal": 59525
},
{
"icon_id": "23046287",
"name": "展开_默认icon",
"font_class": "zhankai_morenicon",
"unicode": "e889",
"unicode_decimal": 59529
},
{
"icon_id": "23046290",
"name": "shanchu_tc_icon",
@ -159,13 +670,6 @@
"unicode": "e88d",
"unicode_decimal": 59533
},
{
"icon_id": "23046311",
"name": "新增页面_鼠标点击icon",
"font_class": "xinzengyemian_shubiaodianjiicon",
"unicode": "e88e",
"unicode_decimal": 59534
},
{
"icon_id": "23046244",
"name": "导入模版_icon",
@ -173,13 +677,6 @@
"unicode": "e86f",
"unicode_decimal": 59503
},
{
"icon_id": "23046247",
"name": "导出_悬浮",
"font_class": "daochu_xuanfu",
"unicode": "e870",
"unicode_decimal": 59504
},
{
"icon_id": "23046252",
"name": "错误",
@ -187,13 +684,6 @@
"unicode": "e872",
"unicode_decimal": 59506
},
{
"icon_id": "23046254",
"name": "成功",
"font_class": "chenggong1",
"unicode": "e873",
"unicode_decimal": 59507
},
{
"icon_id": "23046255",
"name": "更多_icon",
@ -208,13 +698,6 @@
"unicode": "e875",
"unicode_decimal": 59509
},
{
"icon_id": "23046262",
"name": "复制_icon",
"font_class": "fuzhi_icon",
"unicode": "e876",
"unicode_decimal": 59510
},
{
"icon_id": "23046268",
"name": "删除icon",
@ -222,27 +705,6 @@
"unicode": "e877",
"unicode_decimal": 59511
},
{
"icon_id": "23046269",
"name": "垃圾桶_icon@3x",
"font_class": "a-lajitong_icon3x",
"unicode": "e878",
"unicode_decimal": 59512
},
{
"icon_id": "23046270",
"name": "收起_默认icon",
"font_class": "shouqi_morenicon",
"unicode": "e879",
"unicode_decimal": 59513
},
{
"icon_id": "23046271",
"name": "欢迎_icon",
"font_class": "huanying_icon",
"unicode": "e87a",
"unicode_decimal": 59514
},
{
"icon_id": "23046273",
"name": "搜索_删除icon",
@ -264,13 +726,6 @@
"unicode": "e87e",
"unicode_decimal": 59518
},
{
"icon_id": "23046277",
"name": "文件夹_icon",
"font_class": "wenjianjia_icon",
"unicode": "e87f",
"unicode_decimal": 59519
},
{
"icon_id": "23046278",
"name": "下拉按钮",
@ -278,20 +733,6 @@
"unicode": "e880",
"unicode_decimal": 59520
},
{
"icon_id": "23046280",
"name": "新增目录_默认icon",
"font_class": "xinzengmulu_morenicon",
"unicode": "e882",
"unicode_decimal": 59522
},
{
"icon_id": "23046281",
"name": "新增目录_鼠标点击icon",
"font_class": "xinzengmulu_shubiaodianjiicon",
"unicode": "e883",
"unicode_decimal": 59523
},
{
"icon_id": "22906287",
"name": "二次确认_icon",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -3319,9 +3319,9 @@
text = text.replace(emailReg, function ($1, $2, $3, $4) {
return $1.replace(/@/g, "_#_@_#_");
});
// " + editormd.urls.atLinkBase + "" + $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, "@");
}

View File

@ -3,7 +3,7 @@ import './App.css';
import { ConfigProvider } from 'antd'
import zhCN from 'antd/lib/locale-provider/zh_CN';
import {
BrowserRouter as Router,
// BrowserRouter as Router,
Route,
Switch
} from 'react-router-dom';
@ -19,7 +19,7 @@ import moment from 'moment'
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
import SiderBar from './forge/Component/SiderBar'
import { SnackbarHOC } from 'educoder'
import { SnackbarHOC } from 'educoder';
import { initAxiosInterceptors } from './AppConfig'
import { Provider } from 'react-redux';
import configureStore from './redux/stores/configureStore';
@ -39,6 +39,11 @@ const Projects = Loadable({
loader: () => import('./forge/Index'),
loading: Loading,
})
// forge项目详情
const ProjectDetail = Loadable({
loader: () => import("./forge/Main/DetailAdaptor"),
loading: Loading,
});
//forge安全设置
const Security = Loadable({
loader: () => import('./forge/SecuritySetting/Index'),
@ -82,11 +87,29 @@ const Search = Loadable({
loader: () => import('./modules/search/'),
loading: Loading,
})
const WikiPreview = Loadable({
loader: () => import('./forge/Wiki/Preview'),
loading: Loading,
})
const ProjectIndex = Loadable({
loader: () => import("./forge/Index"),
loading: Loading,
loader: () => import("./forge/Index"),
loading: Loading,
});
const AboutUs = Loadable({
loader: () => import("./forge/AboutUs/AboutUs"),
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", "aboutus"];
class App extends Component {
constructor(props) {
super(props);
@ -96,6 +119,51 @@ class App extends Component {
mydisplay: false,
occupation: 0,
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) => {
let newPathname = location.pathname.split('/')[1];
if (this.state.pathName !== newPathname) {
// this.setState({ pathType: '' });
newPathname && this.getPathnameType(newPathname);
}
});
}
shouldComponentUpdate(nextProps, nextState) {
// (!keyWord.includes(this.props.location.pathname.split('/')[1])) &&
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,
});
}
}
@ -115,13 +183,19 @@ class App extends Component {
componentDidMount() {
document.title = "loading...";
initAxiosInterceptors(this.props);
this.getAppdata();
window.addEventListener('error', (event) => {
const msg = `${event.type}: ${event.message}`;
});
}
componentWillUnmount() {
this.unlisten && this.unlisten(); // 执行解绑
}
//修改登录方法
Modifyloginvalue = () => {
this.setState({
@ -192,87 +266,144 @@ class App extends Component {
};
render() {
const { mygetHelmetapi } = this.state;
const { mygetHelmetapi, pathType} = this.state;
let personal = mygetHelmetapi && mygetHelmetapi.personal;
return (
<Provider store={store}>
<ConfigProvider locale={zhCN}>
<MuiThemeProvider theme={theme}>
<LoginDialog {...this.props} {...this.state} Modifyloginvalue={() => this.Modifyloginvalue()}></LoginDialog>
<SiderBar/>
<Router>
<Switch>
{/*项目*/}
<Route
path={"/projects/:owner/:projectId/devops/:opsId/detail"}
render={
(props) => {
return (<OpsDetail {...this.props} {...props} {...this.state} />)
}
}>
</Route>
<Route
path={"/settings"}
render={
(props) => {
return (<Security {...this.props} {...props} {...this.state} />)
}
}>
</Route>
{/*项目*/}
<Route
path={"/projects"}
render={
(props) => {
return (<Projects {...this.props} {...props} {...this.state} />)
}
}>
</Route>
<Route
path="/register"
render={
(props) => {
return (<EducoderLogin {...this.props} {...props} {...this.state} />)
}
<SiderBar />
{/* <Router> */}
<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
path={"/:owner/:projectId/devops/:opsId/detail"}
render={
(props) => {
return (<OpsDetail {...this.props} {...props} {...this.state} />)
}
/>
{/*403*/}
<Route path="/403" component={Shixunauthority} />
}>
</Route>
<Route
path={"/settings"}
render={
(props) => {
return (<Security {...this.props} {...props} {...this.state} />)
}
}>
</Route>
<Route path="/500" component={http500} />
<Route path={"/organize"}
render={
(props) => {
return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
}
}>
</Route>
{/*404*/}
<Route path="/nopage" component={Shixunnopage} />
<Route
path="/register"
render={
(props) => {
return (<EducoderLogin {...this.props} {...props} {...this.state} />)
}
}
/>
{/*403*/}
<Route path="/403" component={Shixunauthority} />
{/* 查询 */}
<Route path="/search" component={Search} />
<Route path="/500" component={http500} />
{/* 个人主页 */}
<Route path="/users/:username"
render={
(props) => {
return (<InfosIndex {...this.props} {...this.state} />)
}
}></Route>
<Route exact path="/"
render={
(props) => (
personal && personal.length > 0 ?
<InfosIndex {...this.props} {...props} />
:
{/*404*/}
<Route path="/nopage" component={Shixunnopage} />
{/* 查询 */}
<Route path="/search" component={Search} />
<Route exact path="/explore"
render={
(props) => (
<ProjectIndex {...this.props} {...props} />
)
)
}
/>
{/* 关于我们 */}
<Route
path = "/aboutus"
render = {(props)=><AboutUs {...this.props} {...props}/>}
></Route>
{/* 组织 */}
<Route path={"/organize"}
render={
(props) => {
return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
}
/>
<Route component={Shixunnopage} />
</Switch>
</Router>
}>
</Route>
{/*新建项目等*/}
<Route
path={"/projects"}
render={
(props) => {
return (<Projects {...this.props} {...props} {...this.state} />)
}
}>
</Route>
{/* 判断为用户/组织,并进入对应页面 */}
{
pathType === 'User' ?
<Route exact path="/:username"
render={
(props) => {
return (<InfosIndex {...this.props} {...this.state} />)
}
}
/> : pathType === 'Organization' ? <Route path={"/:OIdentifier"}
render={
(props) => {
return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
}
}>
</Route> : pathType === '404' ? <Route component={Shixunnopage} />:
<Route exact path="/"
render={
(props) => (
personal && personal.length > 0 ?
<InfosIndex {...this.props} {...props} />
:
<ProjectIndex {...this.props} {...props} />
)
}
/>
// <Route path="/" component={Loading} />
// <Route path="/" component={Shixunnopage} />
}
{/* 个人主页 */}
<Route path="/:username"
render={
(props) => {
return (<InfosIndex {...this.props} {...this.state} />)
}
}></Route>
<Route component={Shixunnopage} />
</Switch>
{/* </Router> */}
</MuiThemeProvider>
</ConfigProvider>
</Provider>

View File

@ -85,7 +85,10 @@ export function initAxiosInterceptors(props) {
}
if (response.data.status === 404) {
locationurl('/nopage');
let responseURL = response.request ? response.request.responseURL:'';
if (responseURL.indexOf('/api/users/') === -1 && responseURL.indexOf('/api/organizations/') === -1 ) {
locationurl('/nopage');
}
}
if (response.data.status === 500) {

View File

@ -195,7 +195,7 @@ class College extends Component {
align: 'center',
className: "edu-txt-center font-14 maxnamewidth105",
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',
}}> {

View File

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

View File

@ -1,4 +1,5 @@
import moment from "moment";
import { number } from "prop-types";
// 处理整点 半点
// 取传入时间往后的第一个半点
@ -97,3 +98,41 @@ export function formatDuring(mss){
}
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) {
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 item

View File

@ -18,6 +18,23 @@ export function getImageUrl(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) {
// https://www.educoder.net
// https://testbdweb.trustie.net

View File

@ -3,7 +3,7 @@
// export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil';
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
, 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
@ -27,7 +27,7 @@ export {
markdownToHTML, uploadNameSizeSeperator, appendFileSizeToUploadFile, appendFileSizeToUploadFileAll, isImageExtension,
downloadFile, sortDirections, validateLength, mdJSONParse, exportMdtoHtml
} 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'

View File

@ -435,11 +435,11 @@ class TPIContextProvider extends Component {
image_url: "avatars/User/1"
login: "innov"
name: "Coder"
user_url: "/users/innov"
user_url: "/innov"
*/
let user = resData.user;
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.is_teacher = resData.is_teacher;
resData.user = user;

View File

@ -0,0 +1,306 @@
import React , { useEffect , useState } from 'react';
import { TPMIndexHOC} from '../../modules/tpm/TPMIndexHOC';
import { Timeline, Carousel } from 'antd';
import CountUp from 'react-countup';
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';
import img1 from './image/img1.png';
import img2 from './image/img2.png';
import img3 from './image/img3.png';
import img4 from './image/img4.png';
import img5 from './image/img5.png';
import img6 from './image/img6.png';
import img7 from './image/img7.png';
import img8 from './image/img8.png';
import img9 from './image/img9.png';
import img10 from './image/img10.png';
import img11 from './image/img11.png';
import img12 from './image/img12.png';
import img13 from './image/img13.png';
import img14 from './image/img14.png';
import img15 from './image/img15.png';
import img16 from './image/img16.png';
import img17 from './image/img17.png';
import img18 from './image/img18.png';
import img19 from './image/img19.png';
import img20 from './image/img20.png';
function AboutUs(){
const countUpProps = {
redraw: true,
start: 0,
duration: 2,
suffix: "+"
};
const [selectTitle, setSelectTitle] = useState(1);
//
const [flush, setFlush] = useState(false);
useEffect(()=>{
window.addEventListener('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>
<tr>
<td><a href="https://www.nudt.edu.cn/" target="_blank"><img src={img6}></img></a></td>
<td><a href="https://www.pku.edu.cn/" target="_blank"><img src={img7}></img></a></td>
<td><a href="https://www.buaa.edu.cn/" target="_blank"><img src={img8}></img></a></td>
<td><a href="https://www.nju.edu.cn/" target="_blank"><img src={img10}></img></a></td>
<td><a href="http://www.iscas.ac.cn/" target="_blank"><img src={img9}></img></a></td>
</tr>
<tr>
<td><a href="https://www.ccf.org.cn/" target="_blank"><img src={img1}></img></a></td>
<td><a href="https://www.hnjmrh.gov.cn/newweb/service/detail/305/" target="_blank"><img src={img2}></img></a></td>
<td><a href="https://www.zhejianglab.com/" target="_blank"><img src={img3}></img></a></td>
<td><a href="http://www.zjusdgyy.com/product/wuxi_545.html" target="_blank"><img src={img4}></img></a></td>
<td><a href="http://www.cec.com.cn/" target="_blank"><img src={img5}></img></a></td>
</tr>
<tr>
<td><a href="https://www.openi.org.cn/" target="_blank"><img src={img11}></img></a></td>
<td><a href="https://www.mulanos.cn/" target="_blank"><img src={img12}></img></a></td>
<td><a href="https://osredm.com/" target="_blank"><img src={img13}></img></a></td>
<td><a href="http://www.copu.org.cn/" target="_blank"><img src={img14}></img></a></td>
<td><a href="https://www.opengcc.org" target="_blank"><img src={img15}></img></a></td>
</tr>
<tr>
<td><a href="https://www.educoder.net/" target="_blank"><img src={img16}></img></a></td>
<td><a href="https://www.didiglobal.com/" target="_blank"><img src={img17}></img></a></td>
<td><a href="https://www.tencent.com/" target="_blank"><img src={img18}></img></a></td>
<td><a href="https://www.inspur.com/" target="_blank"><img src={img19}></img></a></td>
<td><a href="https://www.ucloud.cn/" target="_blank"><img src={img20}></img></a></td>
</tr>
</table>
</div>
</div>
</div>
)
}
export default TPMIndexHOC(AboutUs);

View File

@ -0,0 +1,335 @@
.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{
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;
}
& img{
width: 224px;
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: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 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

@ -10,6 +10,10 @@ import ActivityItem from './ActivityItem';
import axios from 'axios';
const LIMIT = 15;
const ARRAY = [
{
id:"",
name:'全部'
},
{
id:1,
name:'1天'
@ -32,10 +36,15 @@ class Activity extends Component{
constructor(props){
super(props);
this.state={
time:'30',
time:undefined,
type:undefined,
state:undefined,
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,
project_trends:undefined,
@ -63,8 +72,15 @@ class Activity extends Component{
this.setState({
data:result.data,
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=>{
console.log(error);
@ -74,19 +90,19 @@ class Activity extends Component{
// 切换周期
changeTime=(e)=>{
this.setState({
time:e.key,
time:e.key ==="item_0"?undefined:e.key,
isSpin:true
})
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)=>{
this.setState({
type,status
type,status,page:1
})
const {time,page}=this.state;
this.getInfo(time,type,status,page);
const {time}=this.state;
this.getInfo(time,type,status,1);
}
// 分页
ChangePage=(page)=>{
@ -108,12 +124,14 @@ class Activity extends Component{
</Menu>
)
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 } = this.state;
let name = time ? ARRAY.filter(item=>item.id === parseInt(time)) :[{name:"全部"}];
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)+'%';
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%";
return(
<div className="main">
@ -122,7 +140,7 @@ class Activity extends Component{
<div className="orderInfo">
<div>
<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>
</div>
<span>{data && data.pr_all_count}合并请求</span>
@ -132,25 +150,25 @@ class Activity extends Component{
<p className="percent_red" style={{width:`${third_per}`}}></p>
<p className="percent_green" style={{width:`${fourth_per}`}}></p>
</div>
<span>{data && data.issues_count}任务</span>
<span>{data && data.issues_count}易修</span>
</div>
</div>
<ul className="percentBox">
<li>
<span className="purple">{data && data.pr_count}</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","close")}>已处理的合并请求</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","delay")}>已处理的合并请求</span>
</li>
<li>
<span className="green">{data && data.new_pr_count}</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","create")}>未处理的合并请求</span>
<span className="change" onClick={()=>this.changeTrends("PullRequest","not_delay")}>未处理的合并请求</span>
</li>
<li>
<span className="red">{data && data.close_issues_count}</span>
<span className="change" onClick={()=>this.changeTrends("Issue","close")}>已关闭的任务</span>
<span className="change" onClick={()=>this.changeTrends("Issue","delay")}>已关闭的易修</span>
</li>
<li>
<span className="green">{data && data.open_issues_count}</span>
<span className="change" onClick={()=>this.changeTrends("Issue","create")}>未处理的任务</span>
<span className="change" onClick={()=>this.changeTrends("Issue","not_delay")}>未处理的易修</span>
</li>
</ul>
</div>

View File

@ -14,25 +14,25 @@ class ActivityItem extends Component {
{/* 如果是版本发布 */}
{item.trend_type === "VersionRelease" ?
<p className="itemLine">
<Link to={`/projects/${owner}/${projectsId}/version`} className="color-blue font-16">{item.name}</Link>
<Link to={`/${owner}/${projectsId}/releases`} className="color-blue font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span>
</p >
:
// 如果是任务
item.trend_type === "Issue" ?
<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="color-blue font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span>
</p >
:
// 如果是合并请求
<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="color-blue font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span>
</p >
}
<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" />
<span className="mr20">{item.user_name}</span>
</Link>

View File

@ -1,28 +1,20 @@
import React, { useState } from 'react';
import { Dropdown, Menu, Tooltip } from 'antd';
import { Menu } from 'antd';
import "./branch.scss";
import CopyTool from '../Component/CopyTool';
function CloneAddress({http_url , ssh_url , zip_url , tar_url}) {
const [ key , setKey ] = useState("HTTP");
// 点击按钮复制功能
function jsCopy(){
var e = document.getElementById("copy_rep_content");
e.select();
document.execCommand("Copy");
}
return (
<div className="downMenu">
<div style={{padding:"10px 20px 20px 20px",borderBottom:"1px solid #eee"}}>
<div style={{borderBottom:"1px solid #eee"}}>
<Menu className="urlMenu" selectedKeys={[key]} mode={"horizontal"}>
<Menu.Item key="HTTP" onClick={(e)=>{setKey(e.key)}}>HTTP</Menu.Item>
<Menu.Item key="SSH" onClick={(e)=>{setKey(e.key)}}>SSH</Menu.Item>
</Menu>
<div className="gitAddressClone">
<input type="text" id="copy_rep_content" value={key==="HTTP" ? http_url:ssh_url} />
<Tooltip title="复制链接">
<span className="color-blue" onClick={jsCopy}><i className="iconfont icon-fuzhi"></i></span>
</Tooltip>
<CopyTool inputId="copy_rep_content" className="copytool"/>
</div>
</div>
<Menu className="edu-txt-center">

View File

@ -1,116 +1,65 @@
import React , { useState , useEffect } from 'react';
import { Popover , Input , Spin } from 'antd';
import React , { useState , useEffect , useRef } from 'react';
import { Dropdown} from 'antd';
import './branch.scss';
import { getBranch , getTag } from '../GetData/getData';
import SelectOverlay from './SelectOverlay';
import { findDOMNode } from 'react-dom';
export default (({ projectsId , branch , owner , changeBranch , branchList , tagflag = true })=>{
const [ showValue , setShowValue ] = useState(branch);
const [ inputValue , setInputValue] = useState(undefined);
const [ nav , setNav ] = useState(0);
const [ isSpin , setIsSpin ] = useState(true);
const [ flag , setFlag ] = useState(false);
const [ visible , setVisible ] = useState(false);
const [ data , setData ] = useState(undefined);
const [ datas , setDatas ] = useState(undefined);
const refFa = useRef(null);
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(()=>{
setShowValue(branch);
},[branch])
useEffect(()=>{
document.body.addEventListener('click', e => {
let name = e.target.className;
let turn = name === "ant-input OptionsInput" || name === "navli active"|| name === "navli" || name === "padding10 bor-bottom-greyE";
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);
function ChangeB(params) {
setVisible(false);
changeBranch(params);
}
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 = (
<div>
<div className="padding10 bor-bottom-greyE">
<Input
placeholder="请输入分支或标签名称搜索"
autocomplete="off" className="OptionsInput" value={inputValue}
onChange={changeInputValue} style={{width:"220px"}}
/>
<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 ref={refFa}>
<SelectOverlay
visible={visible}
changeBranch={ChangeB}
tagflag={tagflag}
projectsId={projectsId}
owner={owner}
branchList={branchList}
/>
</div>
);
return(
<Popover placement='bottomLeft' visible={flag} content={menu} onClick={()=>setFlag(!flag)} overlayClassName="branch-tagBox-list">
<div className="branch-tagBox">
<Dropdown placement='bottomLeft' visible={visible} overlay={menu} overlayClassName="branch-tagBox-list" trigger={['click']} >
<div className="branch-tagBox" ref={refBox} onClick={()=>setVisible(visible ? false : true)}>
{/* {nav === 0 ?"分支":"标签"} */}
<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}
</a>
<i className="showtag iconfont icon-xiajiantou font-14 color-grey-9 mr8" />
</span>
<i className="showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1" />
</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

@ -23,14 +23,16 @@
max-height: 300px;
}
.OptionsUl{
min-height: 50px;
max-height: 220px;
overflow-y: auto;
}
.OptionsUl li{
height: 35px;
line-height: 35px;
height: 30px;
line-height: 30px;
cursor: pointer;
padding:0px 10px;
padding:0px 20px;
margin:5px 0px;
}
.OptionsUl li:hover{
background-color: #F0F0F0;
@ -45,38 +47,56 @@
width: 100%;
}
.branch-tagBox{
border:1px solid #eee;
border:1px solid #D0D0D0;
border-radius: 3px;
height: 40px;
height: 32px;
display: flex;
align-items: center;
cursor: pointer;
min-width: 140px;
min-width: 104px;
}
.branch-tagBox-list .ant-popover-arrow{
display: none;
.branch-tagBox:hover{
background-color: #F3F4F6;
}
.branch-tagBox-list.ant-popover.ant-popover-placement-bottom{
padding-top:0px;
.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;
}
}
.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;
.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;
@ -86,6 +106,7 @@
.urlMenu{
line-height: 30px;
margin-bottom: 10px;
padding:15px 20px 0px 20px;
border-bottom: none;
li.ant-menu-item{
height: 30px;
@ -96,10 +117,13 @@
color: #333;
}
&.ant-menu-item-selected{
border-color:#1890ff!important;
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(){
getGroupID && getGroupID(id);
setID(undefined);
}
return(

View File

@ -113,7 +113,14 @@ li.ant-menu-item{
z-index: 10000;
}
.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){
@ -155,41 +162,112 @@ li.ant-menu-item{
margin:0px 20px!important;
}
}
.hoverA{
display:flex;
align-items: center;
max-width: 78px;
&:hover a{
color:#2A61FF !important ;
}
}
.menuPanels{
width: 240px;
height: 180px;
width: 295px;
.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{
height: 100%;
width: 100%;
}
.ant-popover-inner-content{
padding:0px;
}
}
.halfs{
margin-top: 24px;
padding:24px 0px 0px 0px;
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{
padding:15px 0px;
padding:10px 20px 16px;
&>a{
display: flex;
flex-direction: column;
align-items: center;
border-right: 1px solid #eee;
flex: 1;
& >span:first-child{
font-size: 18px;
font-weight: 400;
font-size: 16px;
font-weight: 500;
color: #333;
line-height: 22px;
}
& >span:last-child{
color: #666;
}
&:last-child{
border-right: none;
font-weight: 400;
line-height: 20px;
margin-top: 6px;
}
}
}

View File

@ -1,13 +1,13 @@
import React, { useEffect, useState } from 'react';
import { AlignCenter , FlexAJ } from '../Component/layout';
import { Link } from 'react-router-dom';
import { Popover , Spin } from 'antd';
import { Popover , Spin , Button } from 'antd';
import { getImageUrl } from 'educoder';
import './Component.scss';
import { getUser } from '../GetData/getData';
import axios from 'axios';
function Contributors({contributors,owner,projectsId}){
function Contributors({contributors,owner,projectsId,currentLogin}){
const [ menuList ,setMenuList ]= useState([]);
const [ list , setList ]= useState(undefined);
const [ total , setTotal ]= useState(0);
@ -46,46 +46,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){
if(data){
let ele = (
<Spin spinning={isSpin}>
<FlexAJ>
<FlexAJ className="menuMaininfos">
<AlignCenter>
<Link to={`/users/${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>
{
data.is_watch ? <a className="color-grey-9" onClick={()=>FocusFunc(false,data.login)}>取消关注</a>:<a className="color-blue" onClick={()=>FocusFunc(true,data.login)}>关注</a>
}
</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)}
<Link to={`/${data.login}`}><img src={getImageUrl(`/${data.image_url}`)} alt="" className="radius" width="38px" height="38px"/></Link>
<div className="ml10">
<Link to={`/${data.login}`}>{data.name}</Link>
{ data.location && <span className="leftline">{data.location}</span> }
{
data.organizations && data.organizations.length>0&&
<p className="task-hide" style={{maxWidth:"215px"}}>
所属组织{renderOrganize(data.organizations)}
</p>
}
</div>
</AlignCenter>
:""
}
{
data.location && <AlignCenter className="font-12 pt4 pb4"><span>所在地址:</span><span className="ml5">{data.location}</span></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'}}>
{
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>
)
setMenu(ele);
@ -135,17 +149,17 @@ function Contributors({contributors,owner,projectsId}){
return(
<div className="halfs">
<FlexAJ>
<AlignCenter><span className="font-16 color-grey-6">贡献者</span>{ contributors && contributors.total_count > 0 && <span className="infoCount">{contributors.total_count}</span>}</AlignCenter>
<Link className="font-12 color-grey-9" to={`/projects/${owner}/${projectsId}/contribute`}>全部</Link>
</FlexAJ>
<Link to={`/${owner}/${projectsId}/contribute`} className="font-16 color-ooo hoverA">
<span>贡献者</span>
{ contributors && contributors.total_count > 0 && <span className="infoCount">{contributors.total_count}</span>}
</Link>
<div className="attrPerson" onMouseLeave={()=>setVisibleFunc(false)}>
{
total > 0 ?
list.map((item,key)=>{
return(
<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)}/>
</Link>
</Popover>

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

@ -1,7 +1,7 @@
import React from 'react';
import { AlignCenter } from '../layout';
import { Modal , Button } from 'antd';
import './Index.scss';
import { Button } from 'antd';
import Modals from '../PublicModal/Index';
function DeleteBox({
visible ,
@ -12,24 +12,22 @@ function DeleteBox({
content
}) {
return(
<Modal
visible={visible}
onCancel={onCancel}
title={title}
width="600px"
className="deleteBox"
footer={
<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>{subTitle}</p>
<p>{subTitle}</p>
</div>
</Modal>
</Modals>
)
}
export default DeleteBox;

View File

@ -1,45 +0,0 @@
.deleteBox{
.ant-modal-header{
background-color: #f8f8f8;
border-bottom: none;
.ant-modal-title{
text-align: left;
font-size: 20px;
}
}
.ant-modal-body{
padding:30px 50px;
p{
font-size: 16px;
line-height: 26px;
color:#666;
word-break: break-all;
}
.desc{
.descMain{
align-items: center;
justify-content: center;
font-size: 20px;
margin-bottom: 10px;
i{
font-size: 38px!important;
color:#DF0002
}
}
}
}
.ant-modal-footer{
border-top: none;
text-align: center;
padding-bottom: 40px;
button{
width: 120px;
margin:0px 20px;
&.ant-btn-danger{
background-color: #fff;
color: #DF0002;
border-color: #D0D0D0;
}
}
}
}

View File

@ -78,7 +78,7 @@ function DrawerPanel({visible,onClose,branch,owner,projectsId,history, name , li
if(dataref.type==="file"){
onClose();
let value = turnbar(branch);
history.push(`/projects/${owner}/${projectsId}/tree/${value}/${dataref.path}`);
history.push(`/${owner}/${projectsId}/tree/${value}/${dataref.path}`);
}
}

View File

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

View File

@ -25,7 +25,7 @@ function LanguagePower({languages}){
}
return(
<div>
<p className="font-16 color-grey-6">开发语言</p>
<p className="font-16 color-ooo aboutSubTitle">开发语言</p>
<div className="progress">
{
array && array.map((item,key)=>{

View File

@ -45,15 +45,15 @@ const Div = styled.div`{
export default (({ user , img, name, time, focusStatus, is_current_user, login , successFunc }) => {
return (
<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">
<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>
{
is_current_user ?
<Button type="default">当前用户</Button>
:
<FocusButton is_watch={focusStatus} id={login} successFunc={successFunc}/>
<FocusButton is_watch={focusStatus} id={login} successFunc={successFunc} notReset={true}/>
}
</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,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;
padding-left: 20px;
}
.markdown-body{
box-shadow: 0px 0px 17px rgba(0,0,0,0.2);
border-radius: 4px;
margin-top: 17px!important;
}
.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,76 @@
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';
function SystemNotice({system_notification,history}){
const [ visible , setVisible ] = useState(false);
useEffect(()=>{
if(system_notification && !cookie.load('notice_stage')){
setVisible(true);
}
},[system_notification,history.location])
function sureContinue() {
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 { AlignCenter , AlignTop , FlexAJ } from '../Component/layout';
import { AlignTop } from '../Component/layout';
import { Link } from 'react-router-dom';
function Releases({owner,projectsId,releaseVersions , baseOperate , projectType}){
function Releases({ owner, projectsId, releaseVersions, distribution }) {
return(
<div>
<FlexAJ>
<AlignCenter><span className="font-16 color-grey-6">发行版</span>
{ releaseVersions && releaseVersions.total_count > 0 && <span className="infoCount">{releaseVersions.total_count}</span>}
</AlignCenter>
{ (releaseVersions && releaseVersions.total_count > 0) || projectType ===2 ?
<Link className="font-12 color-grey-9" to={`/projects/${owner}/${projectsId}/releases`}>全部</Link>
:
baseOperate && <Link className="font-12 color-blue" to={`/projects/${owner}/${projectsId}/releases/new`}>新建</Link>
}
</FlexAJ>
<Link to={`/${owner}/${projectsId}/releases`} className="font-16 color-ooo hoverA">
<span>发行版</span>
{ releaseVersions && releaseVersions.total_count > 0 && <span className="infoCount">{releaseVersions.total_count}</span>}
</Link>
{
releaseVersions && releaseVersions.total_count>0 ?
releaseVersions.list.map((item,key)=>{
return(
key === 0 &&<AlignTop className="mt10">
<i className="iconfont icon-biaoqian3 color-grey-6 font-18 mr10"></i>
<div>
<p className="font-16 color-grey-6">
<Link to={`/projects/${owner}/${projectsId}/releases`}>{item.name}</Link>
<p className="font-16 color-grey-6" style={{display:'flex',alignItems:'center'}}>
{/* 如果是点击最新则发行版列表页只展示最新的一个 */}
<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>
</p>
<p className="color-grey-9 font-13">{item.created_at}</p>
<p className="color-grey-3 font-12">{item.created_at}</p>
</div>
</AlignTop>
)
})
:""
:
<div className="mt8">
您暂未发布任何版本
{distribution && <Link className="color-blue ml20" to={{pathname:`/${owner}/${projectsId}/releases/new`,state:{stable:true}}}>创建新版本</Link>}
</div>
}
</div>

View File

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

View File

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

View File

@ -149,7 +149,7 @@ function About(props, ref) {
axios.post(url).then(result=>{
setIsSpining(false);
if(result && result.data.status === 0){
props.history.push(`/projects/${owner}/${projectsId}/devops/dispose`);
props.history.push(`/${owner}/${projectsId}/devops`);
// open_devops
let { changeOpenDevops } = props;
changeOpenDevops && changeOpenDevops(true);

View File

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

View File

@ -73,7 +73,7 @@ function List({ list, operate , projectsId , owner , showModal , deleteFunc }){
render:(value,item)=>{
let v = turnbar(item.branch);
return(
<Link to={`/projects/${owner}/${projectsId}/tree/${v}/${value}`} className="color-blue">{value}</Link>
<Link to={`/${owner}/${projectsId}/tree/${v}/${value}`} className="color-blue">{value}</Link>
)
}
},
@ -117,7 +117,7 @@ function List({ list, operate , projectsId , owner , showModal , deleteFunc }){
return(
<span>
{ 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> :""
}
{ operate ?
@ -125,7 +125,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>
</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>
)
}

View File

@ -51,7 +51,7 @@ function PipelineName({visible,onCancel,onOk,value ,branchList}){
})
}
</Select>
<Select mode="multiple" allowClear value={eventValue} dropdownClassName="chooseCon" 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)=>{
return(

View File

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

View File

@ -26,7 +26,7 @@ export default ((props)=>{
return(
<div className="disposePanel">
<Banner>
{ permission !=="Reporter" && <Link to={`/projects/${owner}/${props.match.params.projectsId}/devops/dispose`}>工作流配置</Link>}
{ permission !=="Reporter" && <Link to={`/${owner}/${props.match.params.projectsId}/devops`}>工作流配置</Link>}
</Banner>
<Div>
<Dispost {...props}/>

View File

@ -104,7 +104,7 @@ function Params(props){
<Banner>
<FlexAJ>
<span className="font-18">工作流 - 参数管理</span>
<Link to={`/projects/${owner}/${projectsId}/devops/dispose`} className="font-14 color-grey-9 ml20">返回</Link>
<Link to={`/${owner}/${projectsId}/devops`} className="font-14 color-grey-9 ml20">返回</Link>
</FlexAJ>
</Banner>
<Div className="disposeList">

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