From c32e215b270e7406c634ae704445deaa1f33b8b3 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 23 Apr 2021 18:04:07 +0800 Subject: [PATCH 001/231] =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/Index.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index 3bec062f0..0af78cfab 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -298,7 +298,7 @@ border-radius: 4px; .ant-dropdown-menu-item{ border-radius: 8px; - text-align: left; + text-align: left!important; a{ width: 350px; overflow: hidden; From 09065383c1483c7f2e1da4d6ecd9b7a974040c86 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Sun, 25 Apr 2021 17:38:47 +0800 Subject: [PATCH 002/231] =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E9=A1=B9=E7=9B=AE-?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2=E5=B7=B2=E7=94=BB=E5=AE=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Component/EAccount.scss | 4 +- src/forge/Divert/DivertModal.jsx | 96 +++++++++++++++++++++++++++++++ src/forge/Divert/Index.scss | 12 ++++ src/forge/Notice/Index.jsx | 58 +++++++++++++++++++ src/forge/Notice/Index.scss | 36 ++++++++++++ src/forge/Notice/Notify.jsx | 64 +++++++++++++++++++++ src/forge/Notice/UndoEvent.jsx | 81 ++++++++++++++++++++++++++ src/forge/Settings/Setting.js | 31 +++++++++- src/forge/users/Infos.js | 60 ++++++++++--------- src/forge/users/undo_events.js | 16 ------ 10 files changed, 411 insertions(+), 47 deletions(-) create mode 100644 src/forge/Divert/DivertModal.jsx create mode 100644 src/forge/Divert/Index.scss create mode 100644 src/forge/Notice/Index.jsx create mode 100644 src/forge/Notice/Index.scss create mode 100644 src/forge/Notice/Notify.jsx create mode 100644 src/forge/Notice/UndoEvent.jsx delete mode 100644 src/forge/users/undo_events.js diff --git a/src/forge/Component/EAccount.scss b/src/forge/Component/EAccount.scss index 6f0bb97f9..4bcd6b918 100644 --- a/src/forge/Component/EAccount.scss +++ b/src/forge/Component/EAccount.scss @@ -1,8 +1,8 @@ .ant-modal-mask{ - z-index: 10000; + z-index: 1001; } .ant-modal-wrap{ - z-index: 10001; + z-index: 1002; .ant-form-explain{ position: absolute; } diff --git a/src/forge/Divert/DivertModal.jsx b/src/forge/Divert/DivertModal.jsx new file mode 100644 index 000000000..914f92f25 --- /dev/null +++ b/src/forge/Divert/DivertModal.jsx @@ -0,0 +1,96 @@ +import React ,{ forwardRef, useEffect, useState } from 'react'; +import { Modal , Form , Input , Radio , Select } from 'antd'; +import './Index.scss'; + +const { Option } = Select; +function DivertModal({form , visible , onSuccess , onCancel}){ + const { getFieldDecorator, validateFields , setFieldsValue } = form; + const [ cate , setCate ] = useState(0); + + useEffect(()=>{ + setFieldsValue({goal:cate}) + },[]) + + function onOk(){ + validateFields((error,values)=>{ + if(!error){ + onSuccess(); + } + }) + + } + function changeType(e){ + setCate(e.target.value); + } + const layout = { + labelCol: { span: 5 }, + wrapperCol: { span: 18 }, + }; + return( + +
+ { + cate === 0 ? + + : + + } +
+ + {getFieldDecorator("goal",{ + rules:[] + })( + + 个人 + 组织 + + )} + + + {getFieldDecorator("username",{ + rules:[{required:true,message:"请输入目标用户名"}] + })( + + )} + + + {getFieldDecorator("identitfy", + {rules:[{required:true,message:"请输入目标组织"}]} + )( + + )} + + + {getFieldDecorator("username", + {rules:[{required:true,message:"请输入仓库标识"}]} + )( + + )} + +
+
+
+ ) +} +export default Form.create()(forwardRef(DivertModal)); \ No newline at end of file diff --git a/src/forge/Divert/Index.scss b/src/forge/Divert/Index.scss new file mode 100644 index 000000000..0a39e4e2d --- /dev/null +++ b/src/forge/Divert/Index.scss @@ -0,0 +1,12 @@ +.diverModal{ + .descUl{ + background-color: #fffae6; + border-radius: 4px; + padding:10px 15px; + color: #efc16b; + border:1px solid #efc16b; + } + .ant-form-item-required::before{ + content: ""; + } +} \ No newline at end of file diff --git a/src/forge/Notice/Index.jsx b/src/forge/Notice/Index.jsx new file mode 100644 index 000000000..8135c72f9 --- /dev/null +++ b/src/forge/Notice/Index.jsx @@ -0,0 +1,58 @@ +import React, { useEffect, useState } from "react"; +import { Menu } from 'antd'; +import { Link } from 'react-router-dom'; +import './Index.scss'; + +import Loadable from "react-loadable"; +import Loading from "../../Loading"; +import { Route, Switch } from "react-router-dom"; + +const Notify = Loadable({ + loader: () => import("./Notify"), + loading: Loading, +}); +const UndoEvent = Loadable({ + loader: () => import("./UndoEvent"), + loading: Loading, +}); +function Index(props){ + const username = props.match.params.username; + const pathname = props.history.location.pathname; + const [ menu , setMenu ] = useState("notify"); + + useEffect(()=>{ + if(pathname && username){ + if(pathname === `/users/${username}/notice`){ + setMenu("notify"); + } + if(pathname === `/users/${username}/notice/undo`){ + setMenu("undo"); + } + } + },[pathname]) + + + return ( +
+ + 通知 + 接收仓库 + + + { + return ; + }} + > + { + return ; + }} + > + +
+ ); +} +export default Index; diff --git a/src/forge/Notice/Index.scss b/src/forge/Notice/Index.scss new file mode 100644 index 000000000..ccce33980 --- /dev/null +++ b/src/forge/Notice/Index.scss @@ -0,0 +1,36 @@ +.noticeMenu{ + .ant-menu-item{ + font-size: 16px; + padding:0px; + margin:0px 20px!important; + height: 54px; + line-height: 54px; + } +} +.notifyList{ + padding:0px 20px; + min-height: 400px; + li{ + display: flex; + border-bottom: 1px solid #eee; + padding:20px 0px; + .notifyImg{ + width: 48px; + height: 48px; + border-radius: 50%; + margin-right: 15px; + } + .notifyFlex{ + flex:1; + p{ + margin:0px; + } + .notifyInfos{ + margin-bottom: 8px; + } + } + &:last-child{ + border-bottom: none; + } + } +} \ No newline at end of file diff --git a/src/forge/Notice/Notify.jsx b/src/forge/Notice/Notify.jsx new file mode 100644 index 000000000..2b5b71dcc --- /dev/null +++ b/src/forge/Notice/Notify.jsx @@ -0,0 +1,64 @@ +import React, { useEffect, useState } from "react"; +import Nodata from '../Nodata'; +import { Skeleton , Pagination } from 'antd'; +import { Link } from 'react-router-dom'; +import { getImageUrl } from 'educoder'; + +let l= [ + { + name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", + type:"moving",time:"几分钟前",login:"innov" + }, + { + name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", + type:"moving",time:"几分钟前",login:"innov" + } +] +const limit = 15; +function Notify(props){ + const [ list , setList ] = useState(undefined); + const [ page , setPage ] = useState(1); + const [ total , setTotal ] = useState(0); + + useEffect(()=>{ + setList(l); + },[]) + + return( +
+ { + list && list.length > 0 ? +
+ +
+ : + + } + {list && list.length === 0 && } + { + total > limit && +
+ {setPage(p)}}/> +
+ } +
+ ) +} +export default Notify; \ No newline at end of file diff --git a/src/forge/Notice/UndoEvent.jsx b/src/forge/Notice/UndoEvent.jsx new file mode 100644 index 000000000..9bb7b972a --- /dev/null +++ b/src/forge/Notice/UndoEvent.jsx @@ -0,0 +1,81 @@ +import React, { useEffect, useState } from "react"; +import Nodata from '../Nodata'; +import { FlexAJ } from '../Component/layout'; +import { Skeleton , Pagination } from 'antd'; +import { Link } from 'react-router-dom'; +import { getImageUrl } from 'educoder'; + +let l= [ + { + name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", + type:"moving",time:"几分钟前",login:"innov" + }, + { + name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", + type:"moving",time:"几分钟前",login:"innov" + } +] +const limit = 15; +function UndoEvent(props){ + const [ list , setList ] = useState(undefined); + const [ page , setPage ] = useState(1); + const [ total , setTotal ] = useState(0); + + useEffect(()=>{ + setList(l); + },[]) + + // 接受 + function acceptDivert(){ + + } + + // 拒绝 + function revertDivert(){ + + } + + return( +
+ { + list && list.length > 0 ? +
+ +
+ : + + } + {list && list.length === 0 && } + { + total > limit && +
+ {setPage(p)}}/> +
+ } +
+ ) +} +export default UndoEvent; \ No newline at end of file diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index a85e159bc..e266ae056 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -2,6 +2,7 @@ import React, { Component } from "react"; import { Form, Input, Checkbox, Select , Spin } from "antd"; import Title from '../Component/Title'; import {WhiteBack} from '../Component/layout'; +import DivertModal from '../Divert/DivertModal'; import axios from "axios"; import "./setting.scss"; const { TextArea } = Input; @@ -25,7 +26,8 @@ class Setting extends Component { LanguageList: undefined, private_check: undefined, loading:true, - project_units:['home',"activity","code"] + project_units:['home',"activity","code"], + divertVisible:false }; } @@ -186,12 +188,28 @@ class Setting extends Component { }); }; + // 转移仓库 + DivertProject=()=>{ + this.setState({ + divertVisible:true + }) + } + // 取消仓库转移 + CancelDivertProject=()=>{ + + } + // 确定转移仓库 + onSuccess=()=>{ + + } + render() { const { getFieldDecorator } = this.props.form; - const { CategoryList, LanguageList, private_check ,loading } = this.state; + const { CategoryList, LanguageList, private_check ,loading , divertVisible } = this.state; return (
+ {this.setState({divertVisible:false})}}/> 基本设置 @@ -282,6 +300,15 @@ class Setting extends Component {
危险操作区
+
+
+

转移仓库

+

+ 将此仓库转移给其他用户或组织 +

+
+ 转移 +

删除本仓库

diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index e3febfced..f9cd60add 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -41,8 +41,8 @@ const FanUser = Loadable({ loading: Loading, }) -const UndoEvents = Loadable({ - loader: () => import("./undo_events"), +const Notice = Loadable({ + loader: () => import("../Notice/Index"), loading: Loading, }) class Infos extends Component { @@ -116,9 +116,10 @@ class Infos extends Component { undo_link = () => { const {user} = this.state this.setState({ - route_type: undefined + route_type: undefined, + project_type:"notice" }) - this.props.history.push(`/users/${user && user.login}/undo_events`) + this.props.history.push(`/users/${user && user.login}/notice`) } route_link = (type) => { @@ -130,7 +131,8 @@ class Infos extends Component { organize_link = () => { const {user} = this.state this.setState({ - route_type: undefined + route_type: undefined, + project_type:"organizes" }) this.props.history.push(`/users/${user && user.login}/organizes`) } @@ -211,21 +213,23 @@ class Infos extends Component {
- {/* {current_user && user && current_user.id === user.id && ( + {current_user && user && current_user.id === user.id && (
-

this.undo_link()}> - - - 待办事项 - - - {user.undo_events} - -

+
  • +

    this.undo_link()}> + + + 待办事项 + + + {user.undo_events} + +

    +
  • - )} */} + )}
      @@ -289,15 +293,17 @@ class Infos extends Component {
      -

      this.organize_link()} > - - - 组织 - - - {user && user.user_org_count} - -

      +
    • +

      this.organize_link()} > + + + 组织 + + + {user && user.user_org_count} + +

      +
    @@ -312,9 +318,9 @@ class Infos extends Component { }} > { - return ; + return ; }} > -
    -

    待办事项

    -
    - -
    - ); - } -} -export default UndoEvents; From fb41baacc1262dfebf397c03a630f9b59d620c37 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Sun, 25 Apr 2021 17:46:38 +0800 Subject: [PATCH 003/231] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=BA=93=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E6=96=87=E4=BB=B6-=E5=88=87=E6=8D=A2=E5=88=B0?= =?UTF-8?q?=E5=85=B6=E5=AE=83=E7=9B=AE=E5=BD=95=E5=90=8E=E8=A6=81=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E5=B0=86=E7=BC=96=E8=BE=91=E7=8A=B6=E6=80=81=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=98=BE=E7=A4=BA=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderDepot.jsx | 2 ++ src/forge/Main/Index.scss | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 5a993a450..86a332467 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -97,6 +97,7 @@ function CoderDepot(props){ setLastCommit(c && c.commit); setLastCommitAuthor(c && c.committer); setMainFlag(true); + setReadOnly(true); } setTimeout(function(){setIsSpin(false);},500); }).catch(error=>{setIsSpin(false);}) @@ -138,6 +139,7 @@ function CoderDepot(props){ setLastCommit(c && c.commit); setLastCommitAuthor(c && c.committer); setMainFlag(false); + setReadOnly(true); } setTimeout(function(){setIsSpin(false);},500) }).catch(error=>{setIsSpin(false);}) diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index 0af78cfab..8d074b653 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -223,6 +223,9 @@ .listtablebody{ li.listtablepath{ a{color: #40a9ff;} + p{ + margin-bottom: 0px!important; + } } li{ height: 42px; From 4e48b0b363acca2644069c80f5ad64b1cde588c4 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 26 Apr 2021 14:59:19 +0800 Subject: [PATCH 004/231] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=BD=AC=E7=A7=BB--?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E6=95=B0=E6=8D=AE=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Divert/DivertModal.jsx | 105 ++++++++++++++++++++++++------- src/forge/Notice/Index.scss | 1 + src/forge/Notice/Notify.jsx | 46 ++++++++------ src/forge/Notice/UndoEvent.jsx | 89 ++++++++++++++++++-------- src/forge/Settings/Setting.js | 95 +++++++++++++++++++--------- src/forge/users/Infos.js | 6 +- 7 files changed, 241 insertions(+), 103 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index bd24bb7de..87a7e886b 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -25,7 +25,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' } window._debugType = debugType; export function initAxiosInterceptors(props) { diff --git a/src/forge/Divert/DivertModal.jsx b/src/forge/Divert/DivertModal.jsx index 914f92f25..ab61147b9 100644 --- a/src/forge/Divert/DivertModal.jsx +++ b/src/forge/Divert/DivertModal.jsx @@ -1,27 +1,66 @@ import React ,{ forwardRef, useEffect, useState } from 'react'; import { Modal , Form , Input , Radio , Select } from 'antd'; import './Index.scss'; +import Axios from 'axios'; const { Option } = Select; -function DivertModal({form , visible , onSuccess , onCancel}){ +function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ const { getFieldDecorator, validateFields , setFieldsValue } = form; const [ cate , setCate ] = useState(0); + const [ organizations , setOrganizations ] = useState(undefined); useEffect(()=>{ setFieldsValue({goal:cate}) },[]) + useEffect(()=>{ + if(owner && repo && visible===true){ + getTeam(); + } + },[repo,owner,visible]) + + function getTeam(){ + const url = `/${owner}/${repo}/applied_transfer_projects/organizations.json`; + Axios.get(url).then(result=>{ + if(result){ + setOrganizations(result.data.organizations); + } + }).catch(error=>{}) + } + + // 确认转移 function onOk(){ validateFields((error,values)=>{ if(!error){ - onSuccess(); + const url = `/${owner}/${repo}/applied_transfer_projects.json`; + Axios.post(url,{ + ...values + }).then(result=>{ + if(result){ + onSuccess(); + } + }).catch(error=>{}) } }) } function changeType(e){ setCate(e.target.value); + setFieldsValue({ + owner_name:undefined + }) } + + function checkIdentifier(rule, value, callback){ + if(!value){ + callback(); + } + if (repo && value !== repo) { + callback("请输入当前项目的标识!"); + } + callback(); + } + const layout = { labelCol: { span: 5 }, wrapperCol: { span: 18 }, @@ -33,7 +72,7 @@ function DivertModal({form , visible , onSuccess , onCancel}){ title="转移仓库" onCancel={onCancel} onOk={onOk} - okText="转移" + okText="确认转移" cancelText={"取消"} centered > @@ -63,27 +102,47 @@ function DivertModal({form , visible , onSuccess , onCancel}){ )} - - {getFieldDecorator("username",{ - rules:[{required:true,message:"请输入目标用户名"}] - })( - - )} - - - {getFieldDecorator("identitfy", - {rules:[{required:true,message:"请输入目标组织"}]} - )( - - )} - + { + cate === 0 && + + {getFieldDecorator("owner_name",{ + rules:[{required:true,message:"请输入目标用户名"}] + })( + + )} + + } + { + cate === 1 && + + {getFieldDecorator("owner_name", + {rules:[{required:true,message:"请选择目标组织"}]} + )( + + )} + + } + - {getFieldDecorator("username", - {rules:[{required:true,message:"请输入仓库标识"}]} + {getFieldDecorator("identifier", + { + rules:[ + {required:true,message:"请输入仓库标识"}, + { + validator:checkIdentifier + } + ] + } )( )} diff --git a/src/forge/Notice/Index.scss b/src/forge/Notice/Index.scss index ccce33980..a3c00f9e9 100644 --- a/src/forge/Notice/Index.scss +++ b/src/forge/Notice/Index.scss @@ -1,4 +1,5 @@ .noticeMenu{ + padding:0px 20px; .ant-menu-item{ font-size: 16px; padding:0px; diff --git a/src/forge/Notice/Notify.jsx b/src/forge/Notice/Notify.jsx index 2b5b71dcc..6ed82786a 100644 --- a/src/forge/Notice/Notify.jsx +++ b/src/forge/Notice/Notify.jsx @@ -1,28 +1,36 @@ import React, { useEffect, useState } from "react"; import Nodata from '../Nodata'; -import { Skeleton , Pagination } from 'antd'; +import {Pagination } from 'antd'; import { Link } from 'react-router-dom'; import { getImageUrl } from 'educoder'; +import Axios from "axios"; -let l= [ - { - name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", - type:"moving",time:"几分钟前",login:"innov" - }, - { - name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", - type:"moving",time:"几分钟前",login:"innov" - } -] const limit = 15; function Notify(props){ + const username = props.match.params.username; const [ list , setList ] = useState(undefined); const [ page , setPage ] = useState(1); const [ total , setTotal ] = useState(0); useEffect(()=>{ - setList(l); - },[]) + if(username){ + getList(); + } + },[username,page]) + + function getList(){ + const url = `/users/${username}/applied_messages.json`; + Axios.get(url,{ + params:{ + page,per_page:limit + } + }).then(result=>{ + if(result){ + setList(result.data.applied_messages); + setTotal(result.data.total_count); + } + }).catch(error=>{}) + } return(
    @@ -34,13 +42,13 @@ function Notify(props){ list.map((i,k)=>{ return(
  • - +

    - {i.name} - {i.time} + {i.applied_user && i.applied_user.name} + {i.time_ago}

    -

    正在将仓库转移给【某某某】

    +

    {i.name}

  • ) @@ -49,9 +57,9 @@ function Notify(props){
    : - + "" } - {list && list.length === 0 && } + {list && list.length === 0 && } { total > limit &&
    diff --git a/src/forge/Notice/UndoEvent.jsx b/src/forge/Notice/UndoEvent.jsx index 9bb7b972a..5bfac3ca7 100644 --- a/src/forge/Notice/UndoEvent.jsx +++ b/src/forge/Notice/UndoEvent.jsx @@ -1,38 +1,57 @@ import React, { useEffect, useState } from "react"; import Nodata from '../Nodata'; import { FlexAJ } from '../Component/layout'; -import { Skeleton , Pagination } from 'antd'; +import { Pagination , Popconfirm } from 'antd'; import { Link } from 'react-router-dom'; import { getImageUrl } from 'educoder'; +import Axios from 'axios'; -let l= [ - { - name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", - type:"moving",time:"几分钟前",login:"innov" - }, - { - name:"创新使者",image_url:"system/lets/letter_avatars/2/D/169_162_140/120.png", - type:"moving",time:"几分钟前",login:"innov" - } -] const limit = 15; function UndoEvent(props){ + const username = props.match.params.username; const [ list , setList ] = useState(undefined); const [ page , setPage ] = useState(1); const [ total , setTotal ] = useState(0); + useEffect(()=>{ - setList(l); - },[]) + if(username){ + getList(); + } + },[username,page]) + + function getList(){ + const url = `/users/${username}/applied_transfer_projects.json`; + Axios.get(url,{ + params:{ + page,per_page:limit + } + }).then(result=>{ + if(result){ + setList(result.data.applied_transfer_projects); + setTotal(result.data.total_count); + } + }).catch(error=>{}) + } // 接受 - function acceptDivert(){ - + function acceptDivert(id){ + const url = `/users/${username}/applied_transfer_projects/${id}/accept.json`; + Axios.post(url).then(result=>{ + if(result && result.data){ + getList(); + } + }).catch(error=>{}) } // 拒绝 - function revertDivert(){ - + function revertDivert(id){ + const url = `/users/${username}/applied_transfer_projects/${id}/refuse.json`; + Axios.post(url).then(result=>{ + if(result && result.data){ + getList(); + } + }).catch(error=>{}) } return( @@ -45,18 +64,34 @@ function UndoEvent(props){ list.map((i,k)=>{ return(
  • - +

    - {i.name} - {i.time} + {i.user && i.user.name} + {i.time_ago}

    -

    请求将仓库转移给【用户名】,是否接受?

    - - 接受 - 拒绝 - +

    请求将仓库转移给【{i.owner && i.owner.name}】,是否接受?

    + { + i.status === "common" && + + acceptDivert(i.id)}> + 接受 + + revertDivert(i.id)}> + 拒绝 + + + } + { + i.status === "canceled" && 对方已取消转移 + } + { + i.status === "accept" && 已接受 + } + { + i.status === "refused" && 已拒绝 + }
  • @@ -66,9 +101,9 @@ function UndoEvent(props){
    : - + "" } - {list && list.length === 0 && } + {list && list.length === 0 && } { total > limit &&
    diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index e266ae056..0584e2068 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -27,7 +27,9 @@ class Setting extends Component { private_check: undefined, loading:true, project_units:['home',"activity","code"], - divertVisible:false + divertVisible:false, + is_transfering:undefined, + permission:undefined }; } @@ -75,7 +77,9 @@ class Setting extends Component { this.setState({ private_check: result.data.private, loading:false, - project_units:units + project_units:units, + is_transfering:result.data.is_transfering, + permission:result.data.permission }); } }) @@ -196,20 +200,44 @@ class Setting extends Component { } // 取消仓库转移 CancelDivertProject=()=>{ + this.props.confirm({ + content: "是否确认取消将此项目转移给他人?", + onOk: () => { + const { projectsId , owner } = this.props.match.params; + const url = `/${owner}/${projectsId}/applied_transfer_projects/cancel.json`; + axios.post(url).then(result=>{ + if(result && result.data){ + this.setState({ + is_transfering:false + }) + } + }).catch(error=>{}) + }, + }); } // 确定转移仓库 onSuccess=()=>{ - + this.setState({ + is_transfering:true, + divertVisible:false + }) } render() { const { getFieldDecorator } = this.props.form; + const { projectsId , owner } = this.props.match.params; - const { CategoryList, LanguageList, private_check ,loading , divertVisible } = this.state; + const { CategoryList, LanguageList, private_check ,loading , divertVisible , permission , is_transfering } = this.state; return (
    - {this.setState({divertVisible:false})}}/> + {this.setState({divertVisible:false})}} + /> 基本设置 @@ -297,32 +325,41 @@ class Setting extends Component { {/* 镜像设置部分,暂无接口,先不显示 */} {/* */} - -
    -
    危险操作区
    -
    + { + permission && (permission === "Admin" || permission === "Owner")? +
    -

    转移仓库

    -

    - 将此仓库转移给其他用户或组织 -

    +
    危险操作区
    +
    +
    +

    转移仓库

    +

    + 将此仓库转移给其他用户或组织 +

    +
    + { + is_transfering ? + 取消转移 + : + 转移 + } +
    +
    +
    +

    删除本仓库

    +

    + 删除仓库是永久性的, + 无法撤消,且删除后,与仓库关联的项目/任务/合并请求/版本发布等,均会被删除 +

    +
    + + 删除本仓库 + +
    - 转移 -
    -
    -
    -

    删除本仓库

    -

    - 删除仓库是永久性的, - 无法撤消,且删除后,与仓库关联的项目/任务/合并请求/版本发布等,均会被删除 -

    -
    - - 删除本仓库 - -
    -
    -
    + + :"" + }
    ); diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index f9cd60add..2248eca20 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -213,7 +213,7 @@ class Infos extends Component {
    - {current_user && user && current_user.id === user.id && ( + {current_user && user && user.login === current_user.login ? (
  • @@ -229,7 +229,7 @@ class Infos extends Component {
  • - )} + ):""}
      @@ -289,8 +289,6 @@ class Infos extends Component {
    } - -
  • From 631b05dfd629f48472f2c6b92f45ccb83ba150cb Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Sun, 25 Apr 2021 17:46:38 +0800 Subject: [PATCH 005/231] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=BA=93=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E6=96=87=E4=BB=B6-=E5=88=87=E6=8D=A2=E5=88=B0?= =?UTF-8?q?=E5=85=B6=E5=AE=83=E7=9B=AE=E5=BD=95=E5=90=8E=E8=A6=81=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E5=B0=86=E7=BC=96=E8=BE=91=E7=8A=B6=E6=80=81=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=98=BE=E7=A4=BA=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderDepot.jsx | 2 ++ src/forge/Main/Index.scss | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 5a993a450..86a332467 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -97,6 +97,7 @@ function CoderDepot(props){ setLastCommit(c && c.commit); setLastCommitAuthor(c && c.committer); setMainFlag(true); + setReadOnly(true); } setTimeout(function(){setIsSpin(false);},500); }).catch(error=>{setIsSpin(false);}) @@ -138,6 +139,7 @@ function CoderDepot(props){ setLastCommit(c && c.commit); setLastCommitAuthor(c && c.committer); setMainFlag(false); + setReadOnly(true); } setTimeout(function(){setIsSpin(false);},500) }).catch(error=>{setIsSpin(false);}) diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index 0af78cfab..8d074b653 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -223,6 +223,9 @@ .listtablebody{ li.listtablepath{ a{color: #40a9ff;} + p{ + margin-bottom: 0px!important; + } } li{ height: 42px; From 0636e0a9254ce94499d2b2b56fa1af519b871834 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 26 Apr 2021 16:17:04 +0800 Subject: [PATCH 006/231] =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E9=A1=B9=E7=9B=AE-?= =?UTF-8?q?=E4=BF=AE=E6=94=B91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Notice/Notify.jsx | 2 +- src/forge/Notice/UndoEvent.jsx | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index 87a7e886b..bd24bb7de 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -25,7 +25,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' } window._debugType = debugType; export function initAxiosInterceptors(props) { diff --git a/src/forge/Notice/Notify.jsx b/src/forge/Notice/Notify.jsx index 6ed82786a..f4ab24465 100644 --- a/src/forge/Notice/Notify.jsx +++ b/src/forge/Notice/Notify.jsx @@ -42,7 +42,7 @@ function Notify(props){ list.map((i,k)=>{ return(
  • - +

    {i.applied_user && i.applied_user.name} diff --git a/src/forge/Notice/UndoEvent.jsx b/src/forge/Notice/UndoEvent.jsx index 5bfac3ca7..ddf9838cf 100644 --- a/src/forge/Notice/UndoEvent.jsx +++ b/src/forge/Notice/UndoEvent.jsx @@ -64,14 +64,14 @@ function UndoEvent(props){ list.map((i,k)=>{ return(

  • - +

    {i.user && i.user.name} {i.time_ago}

    -

    请求将仓库转移给【{i.owner && i.owner.name}】,是否接受?

    +

    请求将仓库【{i.project && i.project.name}】转移给【{i.owner && i.owner.name}】,是否接受?

    { i.status === "common" && @@ -87,7 +87,7 @@ function UndoEvent(props){ i.status === "canceled" && 对方已取消转移 } { - i.status === "accept" && 已接受 + i.status === "accepted" && 已接受 } { i.status === "refused" && 已拒绝 From 2bd6f9cb1ec9a63779c761ca7a120f14266034c9 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 26 Apr 2021 16:17:21 +0800 Subject: [PATCH 007/231] =?UTF-8?q?=E7=BB=84=E7=BB=87-=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E5=92=8C=E7=BD=91=E5=9D=80=E7=9A=84=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Component/Cards.jsx | 3 ++- src/forge/Team/Sub/Detail.jsx | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/forge/Component/Cards.jsx b/src/forge/Component/Cards.jsx index 498b375c1..f9a3d52e9 100644 --- a/src/forge/Component/Cards.jsx +++ b/src/forge/Component/Cards.jsx @@ -3,7 +3,7 @@ import { getImageUrl } from 'educoder'; import { Link } from 'react-router-dom'; import './Component.scss'; -function Cards({img , title, desc , rightBtn , src}){ +function Cards({img , title, desc , rightBtn , src , bottomInfos}){ return(
    {img &&
    } @@ -15,6 +15,7 @@ function Cards({img , title, desc , rightBtn , src}){
    {desc}
    + {bottomInfos}
    ) diff --git a/src/forge/Team/Sub/Detail.jsx b/src/forge/Team/Sub/Detail.jsx index bba0b7de8..f2df0dbdf 100644 --- a/src/forge/Team/Sub/Detail.jsx +++ b/src/forge/Team/Sub/Detail.jsx @@ -83,10 +83,9 @@ function Detail(props){ img={detail.avatar_url} rightBtn={ - {flag && !buttonflag && detail.is_admin ? - 设置 - - :""} + {flag && !buttonflag && detail.is_admin ? + 设置 + :""} {buttonflag && 组织成员{detail.num_users && {detail.num_users}} @@ -95,6 +94,12 @@ function Detail(props){ } } + bottomInfos={ + !buttonflag &&
    + {detail.location} + {detail.website} +
    + } /> } From ac47ba1b2978cda8a8cb32adcfdae05524c98c5d Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 26 Apr 2021 16:31:26 +0800 Subject: [PATCH 008/231] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE-=E6=AD=A3=E5=88=99=E5=92=8C=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E7=9A=84=E9=A1=B5=E9=9D=A2=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Setting/TeamSettingCommon.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 1a48c7f7a..2aeb0742d 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -99,8 +99,8 @@ export default Form.create()( if(!value){ callback(); } - if(value && !value.match(/^[a-zA-Z][a-zA-Z\d]{3,14}$/)){ - callback("只能使用英文字母和数字,以字母开头,长度为4到15个字符"); + if(value && !value.match(/^[a-zA-Z][a-zA-Z0-9_-]{3,19}$/)){ + callback("只能使用以字母开头,包含字母、数字、下划线、横杠等,长度4到20个字符"); } callback(); } From 0cdb491433e2a560a1c131031657aa1a6616987f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 26 Apr 2021 16:31:26 +0800 Subject: [PATCH 009/231] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE-=E6=AD=A3=E5=88=99=E5=92=8C=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E7=9A=84=E9=A1=B5=E9=9D=A2=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Setting/TeamSettingCommon.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 1a48c7f7a..2aeb0742d 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -99,8 +99,8 @@ export default Form.create()( if(!value){ callback(); } - if(value && !value.match(/^[a-zA-Z][a-zA-Z\d]{3,14}$/)){ - callback("只能使用英文字母和数字,以字母开头,长度为4到15个字符"); + if(value && !value.match(/^[a-zA-Z][a-zA-Z0-9_-]{3,19}$/)){ + callback("只能使用以字母开头,包含字母、数字、下划线、横杠等,长度4到20个字符"); } callback(); } From c0ddd6eaeea7873470e149db38428ebb0e26f2f1 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 26 Apr 2021 17:20:54 +0800 Subject: [PATCH 010/231] =?UTF-8?q?=E7=BB=84=E7=BB=87-=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BAname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/ListItem.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Team/ListItem.jsx b/src/forge/Team/ListItem.jsx index 767a23c28..3c2cf3f41 100644 --- a/src/forge/Team/ListItem.jsx +++ b/src/forge/Team/ListItem.jsx @@ -7,7 +7,7 @@ function ListItem({item,key,OIdentifier}) {

    - {item.identifier} + {item.name} { item.forked_from_project_id && } { item.type && item.type !== 0 ? From 63d70454446cafed1459c900d9fca77e0e71787c Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 09:45:14 +0800 Subject: [PATCH 011/231] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=9B=A2=E9=98=9F-?= =?UTF-8?q?=E6=97=A0=E6=95=B0=E6=8D=AE=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/TeamGroupItems.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Team/TeamGroupItems.jsx b/src/forge/Team/TeamGroupItems.jsx index b3b4a3718..e96a310d3 100644 --- a/src/forge/Team/TeamGroupItems.jsx +++ b/src/forge/Team/TeamGroupItems.jsx @@ -105,7 +105,7 @@ function TeamGroupItems({organizeDetail,limit, count , history}){ }

    } - { list && list.length > 0 && } + { list && list.length === 0 && } { total > limit &&
    From e10f9893e0ddb6e0e47f09796b94130da4a5a18d Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 09:45:14 +0800 Subject: [PATCH 012/231] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=9B=A2=E9=98=9F-?= =?UTF-8?q?=E6=97=A0=E6=95=B0=E6=8D=AE=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/TeamGroupItems.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Team/TeamGroupItems.jsx b/src/forge/Team/TeamGroupItems.jsx index b3b4a3718..e96a310d3 100644 --- a/src/forge/Team/TeamGroupItems.jsx +++ b/src/forge/Team/TeamGroupItems.jsx @@ -105,7 +105,7 @@ function TeamGroupItems({organizeDetail,limit, count , history}){ }
    } - { list && list.length > 0 && } + { list && list.length === 0 && } { total > limit &&
    From 4ba63fd8fafdff8fa963afe0c98dd3fc2877400a Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 13:50:05 +0800 Subject: [PATCH 013/231] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=BD=AC=E7=A7=BB-?= =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Settings/Setting.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index 0584e2068..57ea399f1 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -29,7 +29,6 @@ class Setting extends Component { project_units:['home',"activity","code"], divertVisible:false, is_transfering:undefined, - permission:undefined }; } @@ -79,7 +78,6 @@ class Setting extends Component { loading:false, project_units:units, is_transfering:result.data.is_transfering, - permission:result.data.permission }); } }) @@ -227,8 +225,9 @@ class Setting extends Component { render() { const { getFieldDecorator } = this.props.form; const { projectsId , owner } = this.props.match.params; + const { projectDetail } = this.props; - const { CategoryList, LanguageList, private_check ,loading , divertVisible , permission , is_transfering } = this.state; + const { CategoryList, LanguageList, private_check ,loading , divertVisible , is_transfering } = this.state; return (
    */} { - permission && (permission === "Admin" || permission === "Owner")? + projectDetail && projectDetail.permission && (projectDetail.permission === "Admin" || projectDetail.permission === "Owner")?
    危险操作区
    From 8d509f14739bcb255329b01c128811f83ba0ad4f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 17:11:37 +0800 Subject: [PATCH 014/231] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E3=80=81website=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E8=87=B3develop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Component/SearchUser.jsx | 71 ++++++++++++++++++------------ src/forge/Main/CoderDepot.jsx | 4 +- src/forge/Team/Sub/Detail.jsx | 10 ++++- 3 files changed, 53 insertions(+), 32 deletions(-) diff --git a/src/forge/Component/SearchUser.jsx b/src/forge/Component/SearchUser.jsx index 0203d24f5..b98411237 100644 --- a/src/forge/Component/SearchUser.jsx +++ b/src/forge/Component/SearchUser.jsx @@ -1,45 +1,43 @@ -import React , { useState } from 'react'; +import React , { useState , useEffect } from 'react'; import { AutoComplete } from 'antd'; import { getImageUrl } from "educoder"; import axios from 'axios'; const Option = AutoComplete.Option; -export default ({ getUser })=>{ +export default ({ getUser , placeholder, width })=>{ + const [ source , setSource ] = useState(undefined); const [ searchKey , setSearchKey ] = useState(undefined); - const [ userDataSource , setUserDataSource ] = useState(undefined); + + useEffect(()=>{ + getUserList(); + },[searchKey]) function getUserList(e){ const url = `/users/list.json`; axios.get(url, { params: { - search: e, + search: searchKey, }, - }) - .then((result) => { + }).then((result) => { if (result) { - setUserDataSource(result.data.users); + sourceOptions(result.data.users); } }) .catch((error) => { console.log(error); }); }; - - function changeInputUser(value){ - setSearchKey(value); - getUserList(value); - } - function selectInputUser(id, option){ - setSearchKey(option.props.value); - getUserList(option.props.value); - getUser && getUser(id); - } - const source = - userDataSource && userDataSource.map((item, key) => { + function sourceOptions(userDataSource){ + const s = userDataSource && userDataSource.map((item, key) => { return ( - ); }); + setSource(s); + } + + function changeInputUser(e){ + setSearchKey(e); + }; + + // 选择用户 + function selectInputUser(e, option){ + setSearchKey(option.props.name); + getUser(option.props.login); + }; + return( - +
    + trigger.parentNode} + dataSource={source} + value={searchKey} + style={{ width: width || 300 }} + onChange={changeInputUser} + onSelect={selectInputUser} + placeholder={placeholder || "搜索需要添加的用户..."} + allowClear + /> +
    ) } \ No newline at end of file diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 86a332467..15073e836 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -305,12 +305,12 @@ function CoderDepot(props){ urlLink(`/projects/${owner}/${projectsId}/issues/new`)} >+ 任务
    { type === "dir" && projectDetail.type !== 2 && - + } - + diff --git a/src/forge/Team/Sub/Detail.jsx b/src/forge/Team/Sub/Detail.jsx index f2df0dbdf..6e048a059 100644 --- a/src/forge/Team/Sub/Detail.jsx +++ b/src/forge/Team/Sub/Detail.jsx @@ -96,8 +96,14 @@ function Detail(props){ } bottomInfos={ !buttonflag &&
    - {detail.location} - {detail.website} + { + detail.location && + {detail.location} + } + { + detail.website && + {detail.website} + }
    } /> From 1474f5d3fe81427d97ceb807b5a60ec2e0dac3f4 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 17:12:00 +0800 Subject: [PATCH 015/231] =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E9=A1=B9=E7=9B=AE-bu?= =?UTF-8?q?g=E5=92=8C=E4=BF=AE=E6=94=B9=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Divert/DivertModal.jsx | 15 +++++++++--- src/forge/Notice/Index.jsx | 41 ++++++++++++++++++++++++++------ src/forge/Notice/Index.scss | 39 ++++++++++++++++++++++++++++-- src/forge/Notice/Notify.jsx | 23 ++++++++++++++++-- src/forge/Notice/UndoEvent.jsx | 7 ++++-- src/forge/Settings/Setting.js | 19 +++++++++++---- src/forge/users/Infos.js | 14 +++++++---- 7 files changed, 134 insertions(+), 24 deletions(-) diff --git a/src/forge/Divert/DivertModal.jsx b/src/forge/Divert/DivertModal.jsx index ab61147b9..7d85f8093 100644 --- a/src/forge/Divert/DivertModal.jsx +++ b/src/forge/Divert/DivertModal.jsx @@ -1,5 +1,6 @@ import React ,{ forwardRef, useEffect, useState } from 'react'; import { Modal , Form , Input , Radio , Select } from 'antd'; +import SearchUser from '../Component/SearchUser'; import './Index.scss'; import Axios from 'axios'; @@ -31,13 +32,14 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ // 确认转移 function onOk(){ validateFields((error,values)=>{ + console.log(...values); if(!error){ const url = `/${owner}/${repo}/applied_transfer_projects.json`; Axios.post(url,{ ...values }).then(result=>{ if(result){ - onSuccess(); + onSuccess(result.data && result.data.owner); } }).catch(error=>{}) } @@ -65,6 +67,12 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ labelCol: { span: 5 }, wrapperCol: { span: 18 }, }; + + function getUser(id){ + setFieldsValue({ + owner_name:id + }) + } return( + // + )} } @@ -118,7 +127,7 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ {getFieldDecorator("owner_name", {rules:[{required:true,message:"请选择目标组织"}]} )( - trigger.parentNode}> { organizations && organizations.length > 0 ? organizations.map((i,k)=>{ diff --git a/src/forge/Notice/Index.jsx b/src/forge/Notice/Index.jsx index 8135c72f9..e222d7b80 100644 --- a/src/forge/Notice/Index.jsx +++ b/src/forge/Notice/Index.jsx @@ -1,5 +1,4 @@ import React, { useEffect, useState } from "react"; -import { Menu } from 'antd'; import { Link } from 'react-router-dom'; import './Index.scss'; @@ -18,7 +17,18 @@ const UndoEvent = Loadable({ function Index(props){ const username = props.match.params.username; const pathname = props.history.location.pathname; + const user = props.user; + const [ menu , setMenu ] = useState("notify"); + const [ undo_messages , setMessages ] = useState("notify"); + const [ undo_transfer_projects , setTransferProjects ] = useState("notify"); + + useEffect(()=>{ + if(user){ + setMessages(user.undo_messages); + setTransferProjects(user.undo_transfer_projects); + } + },[user]) useEffect(()=>{ if(pathname && username){ @@ -31,24 +41,41 @@ function Index(props){ } },[pathname]) + function fetchUser(){ + props && props.fetchUser(); + } + + function changeNum(){ + fetchUser(); + } return (
    - - 通知 - 接收仓库 - +
      +
    • + + 通知 + {undo_messages ? {undo_messages}:""} + +
    • +
    • + + 接收仓库 + {undo_transfer_projects ? {undo_transfer_projects}:""} + +
    • +
    { - return ; + return ; }} > { - return ; + return ; }} > diff --git a/src/forge/Notice/Index.scss b/src/forge/Notice/Index.scss index a3c00f9e9..c7bb50ebe 100644 --- a/src/forge/Notice/Index.scss +++ b/src/forge/Notice/Index.scss @@ -1,11 +1,46 @@ .noticeMenu{ padding:0px 20px; - .ant-menu-item{ + display: flex; + border-bottom: 1px solid #eee; + height: 54px; + line-height: 54px; + li{ font-size: 16px; padding:0px; - margin:0px 20px!important; + margin:0px 30px 0px 20px!important; height: 54px; line-height: 54px; + position: relative; + transform: none; + a{ + display: flex; + &>span{ + position: relative; + } + } + &.active a span:first-child::after{ + position: absolute; + bottom: 0px; + height: 2px; + left: 0px; + content: ""; + background-color: #1890ff; + width: 100%; + } + .unNum{ + color: #d38900; + font-size: 12px; + border-radius: 13px; + height: 16px; + line-height: 16px; + padding:0px 4px; + min-width: 23px; + text-align: center; + background-color: #ffe4b3; + margin-top: 19px; + margin-left: 10px; + display: block; + } } } .notifyList{ diff --git a/src/forge/Notice/Notify.jsx b/src/forge/Notice/Notify.jsx index f4ab24465..c4ac66993 100644 --- a/src/forge/Notice/Notify.jsx +++ b/src/forge/Notice/Notify.jsx @@ -32,6 +32,25 @@ function Notify(props){ }).catch(error=>{}) } + function renderStatus(status,applied){ + let { project , owner} = applied + if(status){ + switch(status){ + case 'canceled': + return `取消转移【${project && project.name}】仓库` + case 'common': + return `正在将【${project && project.name}】仓库转移给【${owner && owner.name}】` + case 'successed': + return `【${project && project.name}】仓库成功转移给【${owner && owner.name}】` + default: + return `拒绝转移【${project && project.name}】仓库` + } + + }else{ + return "" + } + } + return(
    { @@ -48,7 +67,7 @@ function Notify(props){ {i.applied_user && i.applied_user.name} {i.time_ago}

    -

    {i.name}

    +

    {renderStatus(i.status,i.applied)}

  • ) @@ -59,7 +78,7 @@ function Notify(props){ : "" } - {list && list.length === 0 && } + {list && list.length === 0 && } { total > limit &&
    diff --git a/src/forge/Notice/UndoEvent.jsx b/src/forge/Notice/UndoEvent.jsx index ddf9838cf..4f105141e 100644 --- a/src/forge/Notice/UndoEvent.jsx +++ b/src/forge/Notice/UndoEvent.jsx @@ -40,6 +40,7 @@ function UndoEvent(props){ Axios.post(url).then(result=>{ if(result && result.data){ getList(); + props && props.fetchUser(); } }).catch(error=>{}) } @@ -50,6 +51,7 @@ function UndoEvent(props){ Axios.post(url).then(result=>{ if(result && result.data){ getList(); + props && props.fetchUser(); } }).catch(error=>{}) } @@ -71,7 +73,8 @@ function UndoEvent(props){ {i.time_ago}

    -

    请求将仓库【{i.project && i.project.name}】转移给【{i.owner && i.owner.name}】,是否接受?

    +

    请求将仓库【{i.project && i.project.name}】 + 转移给【{i.owner && i.owner.name}】,是否接受?

    { i.status === "common" && @@ -103,7 +106,7 @@ function UndoEvent(props){ : "" } - {list && list.length === 0 && } + {list && list.length === 0 && } { total > limit &&
    diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index 57ea399f1..05b9967c4 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -3,6 +3,7 @@ import { Form, Input, Checkbox, Select , Spin } from "antd"; import Title from '../Component/Title'; import {WhiteBack} from '../Component/layout'; import DivertModal from '../Divert/DivertModal'; +import { Link } from 'react-router-dom'; import axios from "axios"; import "./setting.scss"; const { TextArea } = Input; @@ -77,6 +78,7 @@ class Setting extends Component { private_check: result.data.private, loading:false, project_units:units, + transfer:result.data.transfer, is_transfering:result.data.is_transfering, }); } @@ -215,10 +217,11 @@ class Setting extends Component { } // 确定转移仓库 - onSuccess=()=>{ + onSuccess=(owner)=>{ this.setState({ is_transfering:true, - divertVisible:false + divertVisible:false, + transfer:owner }) } @@ -227,7 +230,8 @@ class Setting extends Component { const { projectsId , owner } = this.props.match.params; const { projectDetail } = this.props; - const { CategoryList, LanguageList, private_check ,loading , divertVisible , is_transfering } = this.state; + const { CategoryList, LanguageList, private_check ,loading , divertVisible , is_transfering, transfer } = this.state; + console.log(transfer); return (

    转移仓库

    - 将此仓库转移给其他用户或组织 + { + is_transfering ? + 此仓库正在转移给【 + {transfer && {transfer.name}} + 】,请联系对方接收此仓库。 + : + `将此仓库转移给其他用户或组织` + }

    { diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index 2248eca20..0759a6a9b 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -52,7 +52,8 @@ class Infos extends Component { isSpin: false, user: undefined, project_type: undefined, - route_type: undefined + route_type: undefined, + undo_events:0 }; } @@ -73,14 +74,19 @@ class Infos extends Component { }); const { current_user } = this.props; const { username } = this.props.match.params; + const { pathname } = this.props.location; let url = `/users/${username || (current_user && current_user.login)}.json`; axios .get(url) .then((result) => { + let e = result.data && result.data.undo_events; + let p = result.data && result.data.undo_messages; + let notice = p !== 0 ? pathname === `/users/${username}/notice` :false; this.setState({ user: result.data, isSpin: false, + undo_events:notice ? (e-p) : e }); }) .catch((error) => { @@ -142,7 +148,7 @@ class Infos extends Component { const { current_user, mygetHelmetapi } = this.props; const { username } = this.props.match.params; - const { user, isSpin, project_type, route_type } = this.state; + const { user, isSpin, project_type, route_type , undo_events } = this.state; return (
    @@ -223,7 +229,7 @@ class Infos extends Component { 待办事项 - {user.undo_events} + {undo_events}

    @@ -318,7 +324,7 @@ class Infos extends Component { { - return ; + return ; }} > Date: Tue, 27 Apr 2021 17:11:37 +0800 Subject: [PATCH 016/231] merge undo --- src/forge/Component/SearchUser.jsx | 71 ++++++++++++++++++------------ src/forge/Main/CoderDepot.jsx | 4 +- src/forge/Team/Sub/Detail.jsx | 19 ++++++-- 3 files changed, 60 insertions(+), 34 deletions(-) diff --git a/src/forge/Component/SearchUser.jsx b/src/forge/Component/SearchUser.jsx index 0203d24f5..b98411237 100644 --- a/src/forge/Component/SearchUser.jsx +++ b/src/forge/Component/SearchUser.jsx @@ -1,45 +1,43 @@ -import React , { useState } from 'react'; +import React , { useState , useEffect } from 'react'; import { AutoComplete } from 'antd'; import { getImageUrl } from "educoder"; import axios from 'axios'; const Option = AutoComplete.Option; -export default ({ getUser })=>{ +export default ({ getUser , placeholder, width })=>{ + const [ source , setSource ] = useState(undefined); const [ searchKey , setSearchKey ] = useState(undefined); - const [ userDataSource , setUserDataSource ] = useState(undefined); + + useEffect(()=>{ + getUserList(); + },[searchKey]) function getUserList(e){ const url = `/users/list.json`; axios.get(url, { params: { - search: e, + search: searchKey, }, - }) - .then((result) => { + }).then((result) => { if (result) { - setUserDataSource(result.data.users); + sourceOptions(result.data.users); } }) .catch((error) => { console.log(error); }); }; - - function changeInputUser(value){ - setSearchKey(value); - getUserList(value); - } - function selectInputUser(id, option){ - setSearchKey(option.props.value); - getUserList(option.props.value); - getUser && getUser(id); - } - const source = - userDataSource && userDataSource.map((item, key) => { + function sourceOptions(userDataSource){ + const s = userDataSource && userDataSource.map((item, key) => { return ( - ); }); + setSource(s); + } + + function changeInputUser(e){ + setSearchKey(e); + }; + + // 选择用户 + function selectInputUser(e, option){ + setSearchKey(option.props.name); + getUser(option.props.login); + }; + return( - +
    + trigger.parentNode} + dataSource={source} + value={searchKey} + style={{ width: width || 300 }} + onChange={changeInputUser} + onSelect={selectInputUser} + placeholder={placeholder || "搜索需要添加的用户..."} + allowClear + /> +
    ) } \ No newline at end of file diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 86a332467..15073e836 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -305,12 +305,12 @@ function CoderDepot(props){ urlLink(`/projects/${owner}/${projectsId}/issues/new`)} >+ 任务
    { type === "dir" && projectDetail.type !== 2 && - + } - + diff --git a/src/forge/Team/Sub/Detail.jsx b/src/forge/Team/Sub/Detail.jsx index bba0b7de8..6e048a059 100644 --- a/src/forge/Team/Sub/Detail.jsx +++ b/src/forge/Team/Sub/Detail.jsx @@ -83,10 +83,9 @@ function Detail(props){ img={detail.avatar_url} rightBtn={ - {flag && !buttonflag && detail.is_admin ? - 设置 - - :""} + {flag && !buttonflag && detail.is_admin ? + 设置 + :""} {buttonflag && 组织成员{detail.num_users && {detail.num_users}} @@ -95,6 +94,18 @@ function Detail(props){ } } + bottomInfos={ + !buttonflag &&
    + { + detail.location && + {detail.location} + } + { + detail.website && + {detail.website} + } +
    + } /> } From 81ad2358f5c8a5e37bb62d8a3a910b1dfcdb479d Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 17:23:58 +0800 Subject: [PATCH 017/231] =?UTF-8?q?=E4=B8=8D=E8=83=BD=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Setting/TeamSettingCommon.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 2aeb0742d..6a94beb58 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -119,7 +119,7 @@ export default Form.create()( validator:checkname } ], - ,true + ,true )} {helper( "组织名称:", From efaf0c29b560fb185a76576678b7a0a2c68bf994 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 17:23:58 +0800 Subject: [PATCH 018/231] =?UTF-8?q?=E4=B8=8D=E8=83=BD=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Setting/TeamSettingCommon.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 2aeb0742d..6a94beb58 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -119,7 +119,7 @@ export default Form.create()( validator:checkname } ], - ,true + ,true )} {helper( "组织名称:", From ae34240bfbb3fff5f7687adbbbc7dcbe09d4a2db Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 17:46:05 +0800 Subject: [PATCH 019/231] =?UTF-8?q?=E9=80=9A=E7=9F=A5-=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Notice/Index.jsx | 15 ++++++++------- src/forge/Notice/Notify.jsx | 10 +++++----- src/forge/Notice/UndoEvent.jsx | 1 - src/forge/users/Infos.js | 10 ++++++---- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/forge/Notice/Index.jsx b/src/forge/Notice/Index.jsx index e222d7b80..218b16f5b 100644 --- a/src/forge/Notice/Index.jsx +++ b/src/forge/Notice/Index.jsx @@ -18,17 +18,18 @@ function Index(props){ const username = props.match.params.username; const pathname = props.history.location.pathname; const user = props.user; + const undo_messages = props.undo_messages; const [ menu , setMenu ] = useState("notify"); - const [ undo_messages , setMessages ] = useState("notify"); - const [ undo_transfer_projects , setTransferProjects ] = useState("notify"); + const [ messages , setMessages ] = useState(0); + const [ transferProjects , setTransferProjects ] = useState(0); useEffect(()=>{ - if(user){ - setMessages(user.undo_messages); + if(user && undo_messages){ + setMessages(undo_messages); setTransferProjects(user.undo_transfer_projects); } - },[user]) + },[user,undo_messages]) useEffect(()=>{ if(pathname && username){ @@ -55,13 +56,13 @@ function Index(props){
  • 通知 - {undo_messages ? {undo_messages}:""} + {messages ? {messages}:""}
  • 接收仓库 - {undo_transfer_projects ? {undo_transfer_projects}:""} + {transferProjects ? {transferProjects}:""}
  • diff --git a/src/forge/Notice/Notify.jsx b/src/forge/Notice/Notify.jsx index c4ac66993..d927f56f8 100644 --- a/src/forge/Notice/Notify.jsx +++ b/src/forge/Notice/Notify.jsx @@ -37,13 +37,13 @@ function Notify(props){ if(status){ switch(status){ case 'canceled': - return `取消转移【${project && project.name}】仓库` + return

    取消转移【{project && project.name}】仓库

    case 'common': - return `正在将【${project && project.name}】仓库转移给【${owner && owner.name}】` + return

    正在将【{project && project.name}】仓库转移给【{owner && owner.name}】

    case 'successed': - return `【${project && project.name}】仓库成功转移给【${owner && owner.name}】` + return

    {project && project.name}】仓库成功转移给【{owner && owner.name}】

    default: - return `拒绝转移【${project && project.name}】仓库` + return

    拒绝转移【{project && project.name}】仓库

    } }else{ @@ -67,7 +67,7 @@ function Notify(props){ {i.applied_user && i.applied_user.name} {i.time_ago}

    -

    {renderStatus(i.status,i.applied)}

    + {renderStatus(i.status,i.applied)}
    ) diff --git a/src/forge/Notice/UndoEvent.jsx b/src/forge/Notice/UndoEvent.jsx index 4f105141e..afb5c7060 100644 --- a/src/forge/Notice/UndoEvent.jsx +++ b/src/forge/Notice/UndoEvent.jsx @@ -13,7 +13,6 @@ function UndoEvent(props){ const [ page , setPage ] = useState(1); const [ total , setTotal ] = useState(0); - useEffect(()=>{ if(username){ getList(); diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index 0759a6a9b..06055044a 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -53,7 +53,8 @@ class Infos extends Component { user: undefined, project_type: undefined, route_type: undefined, - undo_events:0 + undo_events:0, + undo_messages:0 }; } @@ -86,7 +87,8 @@ class Infos extends Component { this.setState({ user: result.data, isSpin: false, - undo_events:notice ? (e-p) : e + undo_events:notice ? (e-p) : e, + undo_messages:notice ? result.data && result.data.undo_messages : 0 }); }) .catch((error) => { @@ -123,7 +125,7 @@ class Infos extends Component { const {user} = this.state this.setState({ route_type: undefined, - project_type:"notice" + project_type:"notice", }) this.props.history.push(`/users/${user && user.login}/notice`) } @@ -148,7 +150,7 @@ class Infos extends Component { const { current_user, mygetHelmetapi } = this.props; const { username } = this.props.match.params; - const { user, isSpin, project_type, route_type , undo_events } = this.state; + const { user, isSpin, project_type, route_type , undo_events , undo_messages } = this.state; return (
    From 79d8f4e5adbb3e8210e15c0bd0640039f0eebd09 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 18:27:56 +0800 Subject: [PATCH 020/231] =?UTF-8?q?=E6=B8=85=E7=A9=BA=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E9=87=8C=E7=9A=84=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Component/SearchUser.jsx | 8 +++++++- src/forge/Divert/DivertModal.jsx | 12 +++++++++++- src/forge/Notice/Index.jsx | 2 +- src/forge/users/Infos.js | 15 ++++++++++----- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/forge/Component/SearchUser.jsx b/src/forge/Component/SearchUser.jsx index b98411237..79d23fb65 100644 --- a/src/forge/Component/SearchUser.jsx +++ b/src/forge/Component/SearchUser.jsx @@ -5,9 +5,15 @@ import axios from 'axios'; const Option = AutoComplete.Option; -export default ({ getUser , placeholder, width })=>{ +export default ({ getUser , placeholder, width ,value })=>{ const [ source , setSource ] = useState(undefined); const [ searchKey , setSearchKey ] = useState(undefined); + + useEffect(()=>{ + if(!value){ + setSearchKey(undefined); + } + },[value]) useEffect(()=>{ getUserList(); diff --git a/src/forge/Divert/DivertModal.jsx b/src/forge/Divert/DivertModal.jsx index 7d85f8093..1b9c486f2 100644 --- a/src/forge/Divert/DivertModal.jsx +++ b/src/forge/Divert/DivertModal.jsx @@ -8,6 +8,8 @@ const { Option } = Select; function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ const { getFieldDecorator, validateFields , setFieldsValue } = form; const [ cate , setCate ] = useState(0); + const [ value , setValue ] = useState(undefined); + const [ organizations , setOrganizations ] = useState(undefined); useEffect(()=>{ @@ -18,6 +20,13 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ if(owner && repo && visible===true){ getTeam(); } + if(!visible){ + setFieldsValue({ + owner_name:undefined, + identifier:undefined + }) + setValue(undefined) + } },[repo,owner,visible]) function getTeam(){ @@ -69,6 +78,7 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ }; function getUser(id){ + setValue(id); setFieldsValue({ owner_name:id }) @@ -117,7 +127,7 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ rules:[{required:true,message:"请输入目标用户名"}] })( // - + )} } diff --git a/src/forge/Notice/Index.jsx b/src/forge/Notice/Index.jsx index 218b16f5b..ea57af38c 100644 --- a/src/forge/Notice/Index.jsx +++ b/src/forge/Notice/Index.jsx @@ -19,7 +19,7 @@ function Index(props){ const pathname = props.history.location.pathname; const user = props.user; const undo_messages = props.undo_messages; - + const [ menu , setMenu ] = useState("notify"); const [ messages , setMessages ] = useState(0); const [ transferProjects , setTransferProjects ] = useState(0); diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index 06055044a..f7a1d8876 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -76,6 +76,7 @@ class Infos extends Component { const { current_user } = this.props; const { username } = this.props.match.params; const { pathname } = this.props.location; + const { notice } = this.state; let url = `/users/${username || (current_user && current_user.login)}.json`; axios @@ -83,12 +84,13 @@ class Infos extends Component { .then((result) => { let e = result.data && result.data.undo_events; let p = result.data && result.data.undo_messages; - let notice = p !== 0 ? pathname === `/users/${username}/notice` :false; + let n = notice || pathname === `/users/${username}/notice` ; this.setState({ user: result.data, isSpin: false, - undo_events:notice ? (e-p) : e, - undo_messages:notice ? result.data && result.data.undo_messages : 0 + undo_events:n ? (e-p) : e, + undo_messages:0, + notice:n }); }) .catch((error) => { @@ -122,12 +124,15 @@ class Infos extends Component { } undo_link = () => { - const {user} = this.state + const {user } = this.state; this.setState({ route_type: undefined, project_type:"notice", + notice:true + },()=>{ + this.props.history.push(`/users/${user && user.login}/notice`); + this.fetchUser(); }) - this.props.history.push(`/users/${user && user.login}/notice`) } route_link = (type) => { From 93a53e2c7f5ff3dc4777a02043ddd5ba3b4e5641 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Apr 2021 18:44:40 +0800 Subject: [PATCH 021/231] =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E9=A1=B9=E7=9B=AE-bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/sub/DetailBanner.jsx | 4 ++-- src/forge/Notice/Index.jsx | 8 +++++--- src/forge/Settings/Setting.js | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/forge/Main/sub/DetailBanner.jsx b/src/forge/Main/sub/DetailBanner.jsx index 331790c82..aa801773d 100644 --- a/src/forge/Main/sub/DetailBanner.jsx +++ b/src/forge/Main/sub/DetailBanner.jsx @@ -75,7 +75,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa :"" } - { + {/* { item.menu_name === "resources" &&
  • @@ -84,7 +84,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa {projectDetail && projectDetail.source_count ? {projectDetail.source_count} :""}
  • - } + } */} { item.menu_name === "versions" &&
  • diff --git a/src/forge/Notice/Index.jsx b/src/forge/Notice/Index.jsx index ea57af38c..d9d04d59e 100644 --- a/src/forge/Notice/Index.jsx +++ b/src/forge/Notice/Index.jsx @@ -19,16 +19,18 @@ function Index(props){ const pathname = props.history.location.pathname; const user = props.user; const undo_messages = props.undo_messages; - + const [ menu , setMenu ] = useState("notify"); const [ messages , setMessages ] = useState(0); const [ transferProjects , setTransferProjects ] = useState(0); useEffect(()=>{ - if(user && undo_messages){ - setMessages(undo_messages); + if(user){ setTransferProjects(user.undo_transfer_projects); } + if(undo_messages){ + setMessages(undo_messages); + } },[user,undo_messages]) useEffect(()=>{ diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index 05b9967c4..4c7199682 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -15,7 +15,7 @@ const menu = [ {name:"易修 (Issue)",index:"issues"}, {name:"合并请求",index:"pulls"}, {name:"工作流(beta版)",index:"devops"}, - {name:"资源库",index:"resources"}, + // {name:"资源库",index:"resources"}, {name:"里程碑",index:"versions"}, {name:"动态",index:"activity"}, ] From 2fcb645d42945b863ce1abd2972d9cf0163d0269 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 28 Apr 2021 20:17:30 +0800 Subject: [PATCH 022/231] =?UTF-8?q?04-28=E4=BC=91=E5=81=87=E6=9C=9F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9issue=20--=E9=9C=80=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=87=B3=E5=85=B6=E5=AE=83=E5=88=86=E6=94=AF=EF=BC=88=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=AF=B7=E6=B1=82=E7=9B=B8=E5=85=B3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Merge/NewMerge.js | 2 +- src/forge/Merge/merge_form.js | 14 ++++++++------ src/forge/Order/MilepostDetail.js | 2 +- src/forge/Order/order.js | 4 ++-- src/forge/Order/order_form.js | 4 ++-- src/forge/Team/Group/GroupDetails.jsx | 5 +++-- src/modules/tpm/TPMBanner.js | 2 +- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/forge/Merge/NewMerge.js b/src/forge/Merge/NewMerge.js index 2ef27efad..3cbe4ddcd 100644 --- a/src/forge/Merge/NewMerge.js +++ b/src/forge/Merge/NewMerge.js @@ -178,7 +178,7 @@ class NewMerge extends Component { let arr = projects_names && projects_names.filter(item=>item.id===value); let identifier = arr && arr[0].project_id; let login = arr && arr[0].project_user_login; - let is_fork_id = parseInt(value) !== parseInt(id) + let is_fork_id = parseInt(value) !== parseInt(id); this.setState({ isSpin: true, merge_head: is_fork_id, diff --git a/src/forge/Merge/merge_form.js b/src/forge/Merge/merge_form.js index 57886d042..1c75a9f9a 100644 --- a/src/forge/Merge/merge_form.js +++ b/src/forge/Merge/merge_form.js @@ -34,17 +34,19 @@ class MergeForm extends Component { this.set_defatul(); }; componentDidUpdate=(prevPros)=>{ + const { projectsId ,owner } = this.props.match.params; + const pId = prevPros.match.params.projectsId; + const oId = prevPros.match.params.owner; + if(pId !== projectsId || oId !== owner ){ + // console.log("切换了项目分支···········"); + this.get_default_selects(); + } if(prevPros && this.props && !this.props.checkIfLogin()){ this.props.history.push("/403") return } } - // check_is_login =() =>{ - // if(!this.props.checkIfLogin()){ - // this.props.history.push("/403") - // return - // } - // }; + get_default_selects = () => { const { projectsId ,owner } = this.props.match.params; this.setState({ isSpin: true }); diff --git a/src/forge/Order/MilepostDetail.js b/src/forge/Order/MilepostDetail.js index 2cfb2f89d..7954630dd 100644 --- a/src/forge/Order/MilepostDetail.js +++ b/src/forge/Order/MilepostDetail.js @@ -218,7 +218,7 @@ class MilepostDetail extends Component {
    编辑里程碑 - 创建任务 + 创建易修
  • diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index ac9e7a0ef..8875aa850 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -352,12 +352,12 @@ class order extends Component { if (this.props.checkIfLogin()) { return( - + 创建任务 + + 创建易修 ) }else{ return( - + 创建任务 + + 创建易修 ) } } diff --git a/src/forge/Order/order_form.js b/src/forge/Order/order_form.js index db36c3ea0..ed8d4d8b7 100644 --- a/src/forge/Order/order_form.js +++ b/src/forge/Order/order_form.js @@ -310,14 +310,14 @@ class order_form extends Component {

    - {form_type === "new" ? "新建" :( form_type === "copy" ? "复制" : "编辑")}任务 + {form_type === "new" ? "新建" :( form_type === "copy" ? "复制" : "编辑")}易修

    {getFieldDecorator("subject", { rules: [ { required: true, - message: "请填写任务标题", + message: "请填写易修标题", }, ] })()} diff --git a/src/forge/Team/Group/GroupDetails.jsx b/src/forge/Team/Group/GroupDetails.jsx index 8d1c519b5..49720c171 100644 --- a/src/forge/Team/Group/GroupDetails.jsx +++ b/src/forge/Team/Group/GroupDetails.jsx @@ -84,11 +84,12 @@ export default ((props) => { // 移除成员 function removeUser(username) { - const url = `/organizations/${OIdentifier}/teams/${groupId}/team_users/${username}.json`; if (username) { + const url = `/organizations/${OIdentifier}/teams/${groupId}/team_users/quit.json`; axios.delete(url).then((result) => { if (result && result.data) { - + props.showNotification(`已成功退出团队!`); + props.history.push(`/organize/${OIdentifier}`); } }).catch((error) => { }); } diff --git a/src/modules/tpm/TPMBanner.js b/src/modules/tpm/TPMBanner.js index 3f591a40b..6760fe04b 100644 --- a/src/modules/tpm/TPMBanner.js +++ b/src/modules/tpm/TPMBanner.js @@ -1062,7 +1062,7 @@ class TPMBanner extends Component {
    :

    - 尚未创建任务的实训,不能申请发布 + 尚未创建易修的实训,不能申请发布

    } From ac4b7542e2d98592c3f2936685fbd7b52c8fc13e Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 28 Apr 2021 20:22:54 +0800 Subject: [PATCH 023/231] =?UTF-8?q?=E6=92=A4=E9=94=80=E9=9A=90=E8=97=8F-?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/sub/DetailBanner.jsx | 4 ++-- src/forge/Settings/Setting.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/forge/Main/sub/DetailBanner.jsx b/src/forge/Main/sub/DetailBanner.jsx index aa801773d..331790c82 100644 --- a/src/forge/Main/sub/DetailBanner.jsx +++ b/src/forge/Main/sub/DetailBanner.jsx @@ -75,7 +75,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa :"" } - {/* { + { item.menu_name === "resources" &&
  • @@ -84,7 +84,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa {projectDetail && projectDetail.source_count ? {projectDetail.source_count} :""}
  • - } */} + } { item.menu_name === "versions" &&
  • diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index 4c7199682..05b9967c4 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -15,7 +15,7 @@ const menu = [ {name:"易修 (Issue)",index:"issues"}, {name:"合并请求",index:"pulls"}, {name:"工作流(beta版)",index:"devops"}, - // {name:"资源库",index:"resources"}, + {name:"资源库",index:"resources"}, {name:"里程碑",index:"versions"}, {name:"动态",index:"activity"}, ] From 582f7a39b35612624e377cbb65d6d14152f9e18e Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 6 May 2021 10:14:06 +0800 Subject: [PATCH 024/231] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=BA=93-=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=8F=8F=E8=BF=B0=E6=9C=AA=E6=8D=A2=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderDepot.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 15073e836..9fa5603d0 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -322,7 +322,7 @@ function CoderDepot(props){ lastCommit &&
    -

    {lastCommit && lastCommit.message}

    +
    {lastCommit && lastCommit.message}
    { hideBtn && changeHide(hide)}> } {lastCommit && lastCommit.time_from_now} From 227b68604624a53044202ce94b65fc90934e9919 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 6 May 2021 10:56:09 +0800 Subject: [PATCH 025/231] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=89=80=E6=9C=89?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=9A=84marginbottom=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/css/edu-purge.css | 1 + 1 file changed, 1 insertion(+) diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index ac97837fc..7ada96f46 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -1307,6 +1307,7 @@ td, span { margin: 0; padding: 0; + margin-bottom: 0px!important; } table, From 870fbaa2a996d354235c0b284d58ea15b2fc8019 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 6 May 2021 14:59:54 +0800 Subject: [PATCH 026/231] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E9=A1=B9=E7=9B=AE-ma?= =?UTF-8?q?xlength?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 241 +++++++++++++++--------------- src/forge/Main/CoderRootCommit.js | 2 +- src/forge/New/Index.js | 6 +- 3 files changed, 125 insertions(+), 124 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2bb26e24a..9e662e1aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,30 +6,35 @@ "dependencies": { "@ant-design/colors": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-3.2.2.tgz", - "integrity": "sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ==", + "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-3.2.2.tgz?cache=0&sync_timestamp=1612935637470&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcolors%2Fdownload%2F%40ant-design%2Fcolors-3.2.2.tgz", + "integrity": "sha1-WtQ9YZ6RHzSI66wwPWBuZqhCOQM=", "requires": { "tinycolor2": "^1.4.1" } }, "@ant-design/create-react-context": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@ant-design/create-react-context/-/create-react-context-0.2.5.tgz", - "integrity": "sha512-1rMAa4qgP2lfl/QBH9i78+Gjxtj9FTMpMyDGZsEBW5Kih72EuUo9958mV8PgpRkh4uwPSQ7vVZWXeyNZXVAFDg==", + "resolved": "https://registry.npm.taobao.org/@ant-design/create-react-context/download/@ant-design/create-react-context-0.2.5.tgz", + "integrity": "sha1-9fWpFjtHcgl3EoNzl60w4i55+Fg=", "requires": { "gud": "^1.0.0", "warning": "^4.0.3" } }, + "@ant-design/css-animation": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/@ant-design/css-animation/download/@ant-design/css-animation-1.7.3.tgz?cache=0&sync_timestamp=1596106749762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcss-animation%2Fdownload%2F%40ant-design%2Fcss-animation-1.7.3.tgz", + "integrity": "sha1-YKHJcAFOhrKPlAUQ1p5QPkKPETY=" + }, "@ant-design/icons": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-2.1.1.tgz", - "integrity": "sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w==" + "resolved": "https://registry.npm.taobao.org/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz", + "integrity": "sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko=" }, "@ant-design/icons-react": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons-react/-/icons-react-2.0.1.tgz", - "integrity": "sha512-r1QfoltMuruJZqdiKcbPim3d8LNsVPB733U0gZEUSxBLuqilwsW28K2rCTWSMTjmFX7Mfpf+v/wdiFe/XCqThw==", + "resolved": "https://registry.npm.taobao.org/@ant-design/icons-react/download/@ant-design/icons-react-2.0.1.tgz", + "integrity": "sha1-F6JRNXGrMXrKKSfljOol3THlNvs=", "requires": { "@ant-design/colors": "^3.1.0", "babel-runtime": "^6.26.0" @@ -446,8 +451,8 @@ }, "@types/react-slick": { "version": "0.23.4", - "resolved": "https://registry.npmjs.org/@types/react-slick/-/react-slick-0.23.4.tgz", - "integrity": "sha512-vXoIy4GUfB7/YgqubR4H7RALo+pRdMYCeLgWwV3MPwl5pggTlEkFBTF19R7u+LJc85uMqC7RfsbkqPLMQ4ab+A==", + "resolved": "https://registry.npm.taobao.org/@types/react-slick/download/@types/react-slick-0.23.4.tgz", + "integrity": "sha1-yX4qnn49GTPGhZO46CdS+rHozlM=", "requires": { "@types/react": "*" } @@ -863,9 +868,9 @@ } }, "antd": { - "version": "3.26.16", - "resolved": "https://registry.npmjs.org/antd/-/antd-3.26.16.tgz", - "integrity": "sha512-EYRwlEf8FCPCVRk5yDcgjSZOC0exu+m75SwlSQU+Mh17f9wGhLeL2/DV7/Sra1r+BZlfiahFdkgrLY7UgMMBEQ==", + "version": "3.26.20", + "resolved": "https://registry.nlark.com/antd/download/antd-3.26.20.tgz", + "integrity": "sha1-8/Vw76qllQoUSULyHrKqqgiOlAc=", "requires": { "@ant-design/create-react-context": "^0.2.4", "@ant-design/icons": "~2.1.1", @@ -925,16 +930,16 @@ "dependencies": { "raf": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz", + "integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=", "requires": { "performance-now": "^2.1.0" } }, "rc-pagination": { - "version": "1.20.14", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-1.20.14.tgz", - "integrity": "sha512-sNKwbFrxiqATqcIIShfrFs8BT03n4UUwTAMYae+JhHTmILQmXdvimEnZbVuWcno6G02DAJcLrFpmkn1h2tmEJw==", + "version": "1.20.15", + "resolved": "https://registry.npm.taobao.org/rc-pagination/download/rc-pagination-1.20.15.tgz", + "integrity": "sha1-zLTNDpvU5H9y8p6kMsA1C/ez2Ac=", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.6", @@ -944,8 +949,8 @@ }, "rc-rate": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.5.1.tgz", - "integrity": "sha512-3iJkNJT8xlHklPCdeZtUZmJmRVUbr6AHRlfSsztfYTXVlHrv2TcPn3XkHsH+12j812WVB7gvilS2j3+ffjUHXg==", + "resolved": "https://registry.npm.taobao.org/rc-rate/download/rc-rate-2.5.1.tgz?cache=0&sync_timestamp=1605573559401&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-rate%2Fdownload%2Frc-rate-2.5.1.tgz", + "integrity": "sha1-Vfxf0j6p3MciULmoiYA0efSEKWE=", "requires": { "classnames": "^2.2.5", "prop-types": "^15.5.8", @@ -955,8 +960,8 @@ }, "rc-select": { "version": "9.2.3", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-9.2.3.tgz", - "integrity": "sha512-WhswxOMWiNnkXRbxyrj0kiIvyCfo/BaRPaYbsDetSIAU2yEDwKHF798blCP5u86KLOBKBvtxWLFCkSsQw1so5w==", + "resolved": "https://registry.nlark.com/rc-select/download/rc-select-9.2.3.tgz?cache=0&sync_timestamp=1618886345948&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-select%2Fdownload%2Frc-select-9.2.3.tgz", + "integrity": "sha1-ZDQOLW72TovDz8b0aP/ShiVYmsI=", "requires": { "babel-runtime": "^6.23.0", "classnames": "2.x", @@ -974,8 +979,8 @@ }, "rc-tree": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-2.1.4.tgz", - "integrity": "sha512-Xey794Iavgs8YldFlXcZLOhfcIhlX5Oz/yfKufknBXf2AlZCOkc7aHqSM9uTF7fBPtTGPhPxNEfOqHfY7b7xng==", + "resolved": "https://registry.npm.taobao.org/rc-tree/download/rc-tree-2.1.4.tgz?cache=0&sync_timestamp=1615350038621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-tree%2Fdownload%2Frc-tree-2.1.4.tgz", + "integrity": "sha1-73WfPnmaIbQ8Hs+ceU6hwU5wtZs=", "requires": { "@ant-design/create-react-context": "^0.2.4", "classnames": "2.x", @@ -1083,8 +1088,8 @@ }, "array-tree-filter": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + "resolved": "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz", + "integrity": "sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA=" }, "array-union": { "version": "1.0.2", @@ -3760,8 +3765,8 @@ }, "copy-to-clipboard": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "resolved": "https://registry.npm.taobao.org/copy-to-clipboard/download/copy-to-clipboard-3.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcopy-to-clipboard%2Fdownload%2Fcopy-to-clipboard-3.3.1.tgz", + "integrity": "sha1-EVqhqZmP+rYZb5MHatbaO5E2Yq4=", "requires": { "toggle-selection": "^1.0.6" } @@ -4847,7 +4852,7 @@ }, "dom-closest": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz", + "resolved": "https://registry.npm.taobao.org/dom-closest/download/dom-closest-0.2.0.tgz", "integrity": "sha1-69n5HRvyLo1vR3h2u80+yQIWwM8=", "requires": { "dom-matches": ">=1.0.1" @@ -4891,7 +4896,7 @@ }, "dom-matches": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/dom-matches/download/dom-matches-2.0.0.tgz", "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw=" }, "dom-scroll-into-view": { @@ -5013,8 +5018,8 @@ }, "draft-js": { "version": "0.10.5", - "resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz", - "integrity": "sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg==", + "resolved": "https://registry.npm.taobao.org/draft-js/download/draft-js-0.10.5.tgz", + "integrity": "sha1-v6m+sBj+BTPbsI1mdcNxprCPp0I=", "requires": { "fbjs": "^0.8.15", "immutable": "~3.7.4", @@ -5144,7 +5149,7 @@ }, "enquire.js": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", + "resolved": "https://registry.npm.taobao.org/enquire.js/download/enquire.js-2.1.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenquire.js%2Fdownload%2Fenquire.js-2.1.6.tgz", "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=" }, "entities": { @@ -5663,7 +5668,7 @@ }, "eventlistener": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/eventlistener/-/eventlistener-0.0.1.tgz", + "resolved": "https://registry.npm.taobao.org/eventlistener/download/eventlistener-0.0.1.tgz", "integrity": "sha1-7Suqu4UiJ68rz4iRUscsY8pTLrg=" }, "events": { @@ -7920,7 +7925,7 @@ }, "hammerjs": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "resolved": "https://registry.npm.taobao.org/hammerjs/download/hammerjs-2.0.8.tgz", "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" }, "handle-thing": { @@ -8761,7 +8766,7 @@ }, "immutable": { "version": "3.7.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "resolved": "https://registry.npm.taobao.org/immutable/download/immutable-3.7.6.tgz", "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=" }, "import-fresh": { @@ -9175,9 +9180,9 @@ } }, "is-mobile": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.1.tgz", - "integrity": "sha512-6zELsfVFr326eq2CI53yvqq6YBanOxKBybwDT+MbMS2laBnK6Ez8m5XHSuTQQbnKRfpDzCod1CMWW5q3wZYMvA==" + "version": "2.2.2", + "resolved": "https://registry.nlark.com/is-mobile/download/is-mobile-2.2.2.tgz", + "integrity": "sha1-9snF1Q7gElTOBec5vdg18e1OmVQ=" }, "is-npm": { "version": "1.0.0", @@ -10349,7 +10354,7 @@ }, "lodash.throttle": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "resolved": "https://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" }, "lodash.uniq": { @@ -11404,8 +11409,8 @@ }, "omit.js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-1.0.2.tgz", - "integrity": "sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ==", + "resolved": "https://registry.npm.taobao.org/omit.js/download/omit.js-1.0.2.tgz", + "integrity": "sha1-kaFPDrqEBm36AVvzDkdMR/MLyFg=", "requires": { "babel-runtime": "^6.23.0" } @@ -14208,9 +14213,9 @@ } }, "rc-calendar": { - "version": "9.15.10", - "resolved": "https://registry.npmjs.org/rc-calendar/-/rc-calendar-9.15.10.tgz", - "integrity": "sha512-xh1A3rYejKskAvkjnd9BcHXFbBnAYsHMGHBdtoAkbwp43B6yEieNL0g0Tzz8s1gApDZV2j5vF1jJ9IIpPYFNLw==", + "version": "9.15.11", + "resolved": "https://registry.npm.taobao.org/rc-calendar/download/rc-calendar-9.15.11.tgz", + "integrity": "sha1-zh5eqOTXdDW+ZqjHfbEvHw+aNF8=", "requires": { "babel-runtime": "6.x", "classnames": "2.x", @@ -14223,8 +14228,8 @@ }, "rc-cascader": { "version": "0.17.5", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-0.17.5.tgz", - "integrity": "sha512-WYMVcxU0+Lj+xLr4YYH0+yXODumvNXDcVEs5i7L1mtpWwYkubPV/zbQpn+jGKFCIW/hOhjkU4J1db8/P/UKE7A==", + "resolved": "https://registry.npm.taobao.org/rc-cascader/download/rc-cascader-0.17.5.tgz?cache=0&sync_timestamp=1610107054432&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-cascader%2Fdownload%2Frc-cascader-0.17.5.tgz", + "integrity": "sha1-T96R0jt2CMQgJjw47unAaH+A99w=", "requires": { "array-tree-filter": "^2.1.0", "prop-types": "^15.5.8", @@ -14237,8 +14242,8 @@ }, "rc-checkbox": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.1.8.tgz", - "integrity": "sha512-6qOgh0/by0nVNASx6LZnhRTy17Etcgav+IrI7kL9V9kcDZ/g7K14JFlqrtJ3NjDq/Kyn+BPI1st1XvbkhfaJeg==", + "resolved": "https://registry.npm.taobao.org/rc-checkbox/download/rc-checkbox-2.1.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-checkbox%2Fdownload%2Frc-checkbox-2.1.8.tgz", + "integrity": "sha1-7t2e+cLzr1s7jlzeUlSqia0aiAo=", "requires": { "babel-runtime": "^6.23.0", "classnames": "2.x", @@ -14248,8 +14253,8 @@ }, "rc-collapse": { "version": "1.11.8", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-1.11.8.tgz", - "integrity": "sha512-8EhfPyScTYljkbRuIoHniSwZagD5UPpZ3CToYgoNYWC85L2qCbPYF7+OaC713FOrIkp6NbfNqXsITNxmDAmxog==", + "resolved": "https://registry.npm.taobao.org/rc-collapse/download/rc-collapse-1.11.8.tgz?cache=0&sync_timestamp=1606217065785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-collapse%2Fdownload%2Frc-collapse-1.11.8.tgz", + "integrity": "sha1-ZqQAidRpUZ6UJACasckn4hQEHYA=", "requires": { "classnames": "2.x", "css-animation": "1.x", @@ -14262,8 +14267,8 @@ }, "rc-dialog": { "version": "7.6.1", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-7.6.1.tgz", - "integrity": "sha512-KUKf+2eZ4YL+lnXMG3hR4ZtIhC9glfH27NtTVz3gcoDIPAf3uUvaXVRNoDCiSi+OGKLyIb/b6EoidFh6nQC5Wg==", + "resolved": "https://registry.npm.taobao.org/rc-dialog/download/rc-dialog-7.6.1.tgz?cache=0&sync_timestamp=1614949683544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-dialog%2Fdownload%2Frc-dialog-7.6.1.tgz", + "integrity": "sha1-EVRczAuUWTT6dgeXJuDYU+UtcF8=", "requires": { "babel-runtime": "6.x", "rc-animate": "2.x", @@ -14272,8 +14277,8 @@ }, "rc-drawer": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-3.1.3.tgz", - "integrity": "sha512-2z+RdxmzXyZde/1OhVMfDR1e/GBswFeWSZ7FS3Fdd0qhgVdpV1wSzILzzxRaT481ItB5hOV+e8pZT07vdJE8kg==", + "resolved": "https://registry.npm.taobao.org/rc-drawer/download/rc-drawer-3.1.3.tgz?cache=0&sync_timestamp=1614159639291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-drawer%2Fdownload%2Frc-drawer-3.1.3.tgz", + "integrity": "sha1-y8sE1MB/C2by7OEdhH9KG9gOoLc=", "requires": { "classnames": "^2.2.6", "rc-util": "^4.16.1", @@ -14282,8 +14287,8 @@ }, "rc-dropdown": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-2.4.1.tgz", - "integrity": "sha512-p0XYn0wrOpAZ2fUGE6YJ6U8JBNc5ASijznZ6dkojdaEfQJAeZtV9KMEewhxkVlxGSbbdXe10ptjBlTEW9vEwEg==", + "resolved": "https://registry.npm.taobao.org/rc-dropdown/download/rc-dropdown-2.4.1.tgz?cache=0&sync_timestamp=1600332782526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-dropdown%2Fdownload%2Frc-dropdown-2.4.1.tgz", + "integrity": "sha1-qu9us6UVLN2ZgolcKnjZtfBGzew=", "requires": { "babel-runtime": "^6.26.0", "classnames": "^2.2.6", @@ -14294,8 +14299,8 @@ }, "rc-editor-core": { "version": "0.8.10", - "resolved": "https://registry.npmjs.org/rc-editor-core/-/rc-editor-core-0.8.10.tgz", - "integrity": "sha512-T3aHpeMCIYA1sdAI7ynHHjXy5fqp83uPlD68ovZ0oClTSc3tbHmyCxXlA+Ti4YgmcpCYv7avF6a+TIbAka53kw==", + "resolved": "https://registry.npm.taobao.org/rc-editor-core/download/rc-editor-core-0.8.10.tgz", + "integrity": "sha1-byFbxd+cM/+p9sWzDKc6favoq3w=", "requires": { "babel-runtime": "^6.26.0", "classnames": "^2.2.5", @@ -14308,8 +14313,8 @@ }, "rc-editor-mention": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/rc-editor-mention/-/rc-editor-mention-1.1.13.tgz", - "integrity": "sha512-3AOmGir91Fi2ogfRRaXLtqlNuIwQpvla7oUnGHS1+3eo7b+fUp5IlKcagqtwUBB5oDNofoySXkLBxzWvSYNp/Q==", + "resolved": "https://registry.npm.taobao.org/rc-editor-mention/download/rc-editor-mention-1.1.13.tgz", + "integrity": "sha1-nxyrEGX4awFSOEAyF5DCqxKsXos=", "requires": { "babel-runtime": "^6.23.0", "classnames": "^2.2.5", @@ -14337,9 +14342,9 @@ } }, "rc-hammerjs": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/rc-hammerjs/-/rc-hammerjs-0.6.9.tgz", - "integrity": "sha512-4llgWO3RgLyVbEqUdGsDfzUDqklRlQW5VEhE3x35IvhV+w//VPRG34SBavK3D2mD/UaLKaohgU41V4agiftC8g==", + "version": "0.6.10", + "resolved": "https://registry.npm.taobao.org/rc-hammerjs/download/rc-hammerjs-0.6.10.tgz", + "integrity": "sha1-GDGjvY8hmXAL/MWtayCjVjCuteA=", "requires": { "babel-runtime": "6.x", "hammerjs": "^2.0.8", @@ -14347,9 +14352,9 @@ } }, "rc-input-number": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-4.5.6.tgz", - "integrity": "sha512-AXbL4gtQ1mSQnu6v/JtMv3UbGRCzLvQznmf0a7U/SAtZ8+dCEAqD4JpJhkjv73Wog53eRYhw4l7ApdXflc9ymg==", + "version": "4.5.9", + "resolved": "https://registry.nlark.com/rc-input-number/download/rc-input-number-4.5.9.tgz?cache=0&sync_timestamp=1619578110950&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-input-number%2Fdownload%2Frc-input-number-4.5.9.tgz", + "integrity": "sha1-HL9zXiT+I8TrmkMBAxcguV8qPj0=", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.0", @@ -14360,8 +14365,8 @@ }, "rc-mentions": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-0.4.2.tgz", - "integrity": "sha512-DTZurQzacLXOfVuiHydGzqkq7cFMHXF18l2jZ9PhWUn2cqvOSY3W4osN0Pq29AOMOBpcxdZCzgc7Lb0r/bgkDw==", + "resolved": "https://registry.npm.taobao.org/rc-mentions/download/rc-mentions-0.4.2.tgz?cache=0&sync_timestamp=1610510822768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-mentions%2Fdownload%2Frc-mentions-0.4.2.tgz", + "integrity": "sha1-wYq3Ae+55LdbOFGgwNLdaYZA4kY=", "requires": { "@ant-design/create-react-context": "^0.2.4", "classnames": "^2.2.6", @@ -14389,8 +14394,8 @@ }, "rc-notification": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-3.3.1.tgz", - "integrity": "sha512-U5+f4BmBVfMSf3OHSLyRagsJ74yKwlrQAtbbL5ijoA0F2C60BufwnOcHG18tVprd7iaIjzZt1TKMmQSYSvgrig==", + "resolved": "https://registry.npm.taobao.org/rc-notification/download/rc-notification-3.3.1.tgz?cache=0&sync_timestamp=1614675471156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-notification%2Fdownload%2Frc-notification-3.3.1.tgz", + "integrity": "sha1-C6o+cPjUCrAVzo+njCYMSQ/HvrQ=", "requires": { "babel-runtime": "6.x", "classnames": "2.x", @@ -14411,9 +14416,9 @@ } }, "rc-progress": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-2.5.2.tgz", - "integrity": "sha512-ajI+MJkbBz9zYDuE9GQsY5gsyqPF7HFioZEDZ9Fmc+ebNZoiSeSJsTJImPFCg0dW/5WiRGUy2F69SX1aPtSJgA==", + "version": "2.5.3", + "resolved": "https://registry.npm.taobao.org/rc-progress/download/rc-progress-2.5.3.tgz", + "integrity": "sha1-APAblb2+GFbTpfgiQgUZAui3qOc=", "requires": { "babel-runtime": "6.x", "prop-types": "^15.5.8" @@ -14430,8 +14435,8 @@ }, "rc-resize-observer": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-0.1.3.tgz", - "integrity": "sha512-uzOQEwx83xdQSFOkOAM7x7GHIQKYnrDV4dWxtCxyG1BS1pkfJ4EvDeMfsvAJHSYkQXVBu+sgRHGbRtLG3qiuUg==", + "resolved": "https://registry.npm.taobao.org/rc-resize-observer/download/rc-resize-observer-0.1.3.tgz?cache=0&sync_timestamp=1608864858155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-resize-observer%2Fdownload%2Frc-resize-observer-0.1.3.tgz", + "integrity": "sha1-CXGR+cOrGG7ZB7VTum71Zd8Rwkk=", "requires": { "classnames": "^2.2.1", "rc-util": "^4.13.0", @@ -14459,8 +14464,8 @@ }, "rc-slider": { "version": "8.7.1", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.7.1.tgz", - "integrity": "sha512-WMT5mRFUEcrLWwTxsyS8jYmlaMsTVCZIGENLikHsNv+tE8ThU2lCoPfi/xFNUfJFNFSBFP3MwPez9ZsJmNp13g==", + "resolved": "https://registry.npm.taobao.org/rc-slider/download/rc-slider-8.7.1.tgz?cache=0&sync_timestamp=1616675519253&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-slider%2Fdownload%2Frc-slider-8.7.1.tgz", + "integrity": "sha1-ntBzYtyTSJo45lSyG4EirXD9PEI=", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.5", @@ -14474,8 +14479,8 @@ }, "rc-steps": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-3.5.0.tgz", - "integrity": "sha512-2Vkkrpa7PZbg7qPsqTNzVDov4u78cmxofjjnIHiGB9+9rqKS8oTLPzbW2uiWDr3Lk+yGwh8rbpGO1E6VAgBCOg==", + "resolved": "https://registry.npm.taobao.org/rc-steps/download/rc-steps-3.5.0.tgz", + "integrity": "sha1-NrKn8fSZB7DZA2OISxhiPK+ftgA=", "requires": { "babel-runtime": "^6.23.0", "classnames": "^2.2.3", @@ -14484,9 +14489,9 @@ } }, "rc-switch": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-1.9.0.tgz", - "integrity": "sha512-Isas+egaK6qSk64jaEw4GgPStY4umYDbT7ZY93bZF1Af+b/JEsKsJdNOU2qG3WI0Z6tXo2DDq0kJCv8Yhu0zww==", + "version": "1.9.2", + "resolved": "https://registry.npm.taobao.org/rc-switch/download/rc-switch-1.9.2.tgz?cache=0&sync_timestamp=1603791200779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-switch%2Fdownload%2Frc-switch-1.9.2.tgz", + "integrity": "sha1-eSHHZkEf6aZCZRDDQpAi1rpN/eI=", "requires": { "classnames": "^2.2.1", "prop-types": "^15.5.6", @@ -14495,8 +14500,8 @@ }, "rc-table": { "version": "6.10.15", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-6.10.15.tgz", - "integrity": "sha512-LAr0M/gqt+irOjvPNBLApmQ0CUHNOfKsEBhu1uIuB3OlN1ynA9z+sdoTQyNd9+8NSl0MYnQOOfhtLChAY7nU0A==", + "resolved": "https://registry.nlark.com/rc-table/download/rc-table-6.10.15.tgz", + "integrity": "sha1-GB9McMT9dPZX7o8jGW5+sIoDZco=", "requires": { "classnames": "^2.2.5", "component-classes": "^1.2.6", @@ -14510,8 +14515,8 @@ }, "rc-tabs": { "version": "9.7.0", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-9.7.0.tgz", - "integrity": "sha512-kvmgp8/MfLzFZ06hWHignqomFQ5nF7BqKr5O1FfhE4VKsGrep52YSF/1MvS5oe0NPcI9XGNS2p751C5v6cYDpQ==", + "resolved": "https://registry.npm.taobao.org/rc-tabs/download/rc-tabs-9.7.0.tgz?cache=0&sync_timestamp=1608866453009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-tabs%2Fdownload%2Frc-tabs-9.7.0.tgz", + "integrity": "sha1-rglpW+9ZY9bmTnvBBSHHbf3YRIs=", "requires": { "@ant-design/create-react-context": "^0.2.4", "babel-runtime": "6.x", @@ -14528,8 +14533,8 @@ "dependencies": { "raf": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz", + "integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=", "requires": { "performance-now": "^2.1.0" } @@ -14538,8 +14543,8 @@ }, "rc-time-picker": { "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-time-picker/-/rc-time-picker-3.7.3.tgz", - "integrity": "sha512-Lv1Mvzp9fRXhXEnRLO4nW6GLNxUkfAZ3RsiIBsWjGjXXvMNjdr4BX/ayElHAFK0DoJqOhm7c5tjmIYpEOwcUXg==", + "resolved": "https://registry.npm.taobao.org/rc-time-picker/download/rc-time-picker-3.7.3.tgz?cache=0&sync_timestamp=1576572941972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-time-picker%2Fdownload%2Frc-time-picker-3.7.3.tgz", + "integrity": "sha1-ZajekECTJQrpyCsCpJBeD5leI+I=", "requires": { "classnames": "2.x", "moment": "2.x", @@ -14551,8 +14556,8 @@ "dependencies": { "raf": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz", + "integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=", "requires": { "performance-now": "^2.1.0" } @@ -14561,8 +14566,8 @@ }, "rc-tooltip": { "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz", - "integrity": "sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww==", + "resolved": "https://registry.npm.taobao.org/rc-tooltip/download/rc-tooltip-3.7.3.tgz?cache=0&sync_timestamp=1614588684791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-tooltip%2Fdownload%2Frc-tooltip-3.7.3.tgz", + "integrity": "sha1-KArsavyqROjf8EgPuv+eh/wArsw=", "requires": { "babel-runtime": "6.x", "prop-types": "^15.5.8", @@ -14610,8 +14615,8 @@ }, "rc-tree-select": { "version": "2.9.4", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-2.9.4.tgz", - "integrity": "sha512-0HQkXAN4XbfBW20CZYh3G+V+VMrjX42XRtDCpyv6PDUm5vikC0Ob682ZBCVS97Ww2a5Hf6Ajmu0ahWEdIEpwhg==", + "resolved": "https://registry.nlark.com/rc-tree-select/download/rc-tree-select-2.9.4.tgz", + "integrity": "sha1-aqeU4fDmXGbEBqoKKg50/QpVewk=", "requires": { "classnames": "^2.2.1", "dom-scroll-into-view": "^1.2.1", @@ -14628,8 +14633,8 @@ "dependencies": { "rc-tree": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-2.1.4.tgz", - "integrity": "sha512-Xey794Iavgs8YldFlXcZLOhfcIhlX5Oz/yfKufknBXf2AlZCOkc7aHqSM9uTF7fBPtTGPhPxNEfOqHfY7b7xng==", + "resolved": "https://registry.npm.taobao.org/rc-tree/download/rc-tree-2.1.4.tgz?cache=0&sync_timestamp=1615350038621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-tree%2Fdownload%2Frc-tree-2.1.4.tgz", + "integrity": "sha1-73WfPnmaIbQ8Hs+ceU6hwU5wtZs=", "requires": { "@ant-design/create-react-context": "^0.2.4", "classnames": "2.x", @@ -14642,8 +14647,8 @@ }, "rc-trigger": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-3.0.0.tgz", - "integrity": "sha512-hQxbbJpo23E2QnYczfq3Ec5J5tVl2mUDhkqxrEsQAqk16HfADQg+iKNWzEYXyERSncdxfnzYuaBgy764mNRzTA==", + "resolved": "https://registry.nlark.com/rc-trigger/download/rc-trigger-3.0.0.tgz?cache=0&sync_timestamp=1619590696046&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frc-trigger%2Fdownload%2Frc-trigger-3.0.0.tgz", + "integrity": "sha1-9tmx2oomsrLR2RKgaHbBpIb1mA8=", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.6", @@ -14655,18 +14660,14 @@ }, "dependencies": { "rc-animate": { - "version": "3.0.0-rc.6", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.0.0-rc.6.tgz", - "integrity": "sha512-oBLPpiT6Q4t6YvD/pkLcmofBP1p01TX0Otse8Q4+Mxt8J+VSDflLZGIgf62EwkvRwsQUkLPjZVFBsldnPKLzjg==", + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/rc-animate/download/rc-animate-3.1.1.tgz?cache=0&sync_timestamp=1601018005635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frc-animate%2Fdownload%2Frc-animate-3.1.1.tgz", + "integrity": "sha1-3v3YY/VoFsIiU05Nxo/t3s0IE4Y=", "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "component-classes": "^1.2.6", - "fbjs": "^0.8.16", - "prop-types": "15.x", + "@ant-design/css-animation": "^1.7.2", + "classnames": "^2.2.6", "raf": "^3.4.0", - "rc-util": "^4.5.0", - "react-lifecycles-compat": "^3.0.4" + "rc-util": "^4.15.3" } } } @@ -15105,9 +15106,9 @@ } }, "react-lazy-load": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/react-lazy-load/-/react-lazy-load-3.0.13.tgz", - "integrity": "sha1-OwqS0zbUPT8Nc8vm81sXBQsIuCQ=", + "version": "3.1.13", + "resolved": "https://registry.npm.taobao.org/react-lazy-load/download/react-lazy-load-3.1.13.tgz?cache=0&sync_timestamp=1593654792284&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-lazy-load%2Fdownload%2Freact-lazy-load-3.1.13.tgz", + "integrity": "sha1-I2lD92twhMyEWHFtljKhyYU+pc0=", "requires": { "eventlistener": "0.0.1", "lodash.debounce": "^4.0.0", @@ -15245,8 +15246,8 @@ }, "react-slick": { "version": "0.25.2", - "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.25.2.tgz", - "integrity": "sha512-8MNH/NFX/R7zF6W/w+FS5VXNyDusF+XDW1OU0SzODEU7wqYB+ZTGAiNJ++zVNAVqCAHdyCybScaUB+FCZOmBBw==", + "resolved": "https://registry.nlark.com/react-slick/download/react-slick-0.25.2.tgz", + "integrity": "sha1-VjMbZ9R9i8/i3OtqyrHI/VvR9rw=", "requires": { "classnames": "^2.2.5", "enquire.js": "^2.1.6", @@ -16090,8 +16091,8 @@ }, "rmc-feedback": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/rmc-feedback/-/rmc-feedback-2.0.0.tgz", - "integrity": "sha512-5PWOGOW7VXks/l3JzlOU9NIxRpuaSS8d9zA3UULUCuTKnpwBHNvv1jSJzxgbbCQeYzROWUpgKI4za3X4C/mKmQ==", + "resolved": "https://registry.npm.taobao.org/rmc-feedback/download/rmc-feedback-2.0.0.tgz", + "integrity": "sha1-y8bLOuY8emNe7w4l5PuvWsNm7qo=", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.5" @@ -16674,8 +16675,8 @@ }, "shallow-equal": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", - "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + "resolved": "https://registry.npm.taobao.org/shallow-equal/download/shallow-equal-1.2.1.tgz", + "integrity": "sha1-TBar+lYEOqINBQMk76aJQLDaedo=" }, "shallowequal": { "version": "1.1.0", diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index 5c509ecd0..fc64aa012 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -108,7 +108,7 @@ class CoderRootCommit extends Component{ let branch = branchName || defaultBranch; return( -
    +
    + )} @@ -373,7 +373,7 @@ class Index extends Component { required: true, message: '请填写项目简介' }], })( - + )} + )} Date: Thu, 6 May 2021 15:15:02 +0800 Subject: [PATCH 027/231] =?UTF-8?q?Revert=20"=E8=AE=BE=E7=BD=AE=E6=89=80?= =?UTF-8?q?=E6=9C=89=E6=A0=87=E7=AD=BE=E7=9A=84marginbottom=E4=B8=BA0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 227b68604624a53044202ce94b65fc90934e9919. --- public/css/edu-purge.css | 1 - 1 file changed, 1 deletion(-) diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index 7ada96f46..ac97837fc 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -1307,7 +1307,6 @@ td, span { margin: 0; padding: 0; - margin-bottom: 0px!important; } table, From e7eceb5b23711e834b84851a635544632c42f9e8 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 6 May 2021 17:12:42 +0800 Subject: [PATCH 028/231] =?UTF-8?q?issue-=E5=AD=97=E7=AC=A6=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/css/edu-purge.css | 6 +++ src/forge/Divert/DivertModal.jsx | 6 +-- src/forge/Head/Header.js | 8 ++-- src/forge/Head/header.scss | 8 +++- src/forge/New/Index.js | 42 +++++++++++++------- src/forge/Order/order_form.js | 2 +- src/forge/Team/Group/GroupForm.jsx | 23 +++++++---- src/forge/Team/New.jsx | 30 ++++++++------ src/forge/Team/Setting/TeamSettingCommon.jsx | 25 ++++++++---- src/forge/users/Index.scss | 7 +++- src/forge/users/Team-item.jsx | 2 +- 11 files changed, 104 insertions(+), 55 deletions(-) diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index ac97837fc..009810a66 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -6702,4 +6702,10 @@ ul.count_ul li:not(:last-child):after { } input.ant-input-lg::placeholder{ font-size: 14px !important; +} +.toprightNum{ + position: absolute; + right: 0px; + top:4px; + color: #999; } \ No newline at end of file diff --git a/src/forge/Divert/DivertModal.jsx b/src/forge/Divert/DivertModal.jsx index 1b9c486f2..dd9475010 100644 --- a/src/forge/Divert/DivertModal.jsx +++ b/src/forge/Divert/DivertModal.jsx @@ -152,18 +152,18 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ } - + {getFieldDecorator("identifier", { rules:[ - {required:true,message:"请输入仓库标识"}, + {required:true,message:"请输入仓库名称"}, { validator:checkIdentifier } ] } )( - + )} diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js index 7260d1141..043e53233 100644 --- a/src/forge/Head/Header.js +++ b/src/forge/Head/Header.js @@ -2,16 +2,14 @@ import React, { Component } from 'react'; import AccountProfile from "../../modules/user/AccountProfile"; import { getImageUrl } from 'educoder' import axios from 'axios'; -import { Modal, Input, message, notification , Dropdown , Menu ,Divider } from 'antd'; +import { Modal, Input, message, notification , Dropdown , Menu } from 'antd'; import LoginDialog from '../../modules/login/LoginDialog'; import GotoQQgroup from '../../modal/GotoQQgroup' -// import 'antd/lib/modal/style/index.css'; -// import 'antd/lib/checkbox/style/index.css'; -// import 'antd/lib/radio/style/index.css'; -// import 'antd/lib/input/style/index.css'; + import '../../modules/tpm/TPMIndex.css'; import logo from '../../modules/tpm/images/logo.png'; + import './header.scss'; const $ = window.$ // TODO 这部分脚本从公共脚本中直接调用 diff --git a/src/forge/Head/header.scss b/src/forge/Head/header.scss index 130df4ca8..0ae8f48e2 100644 --- a/src/forge/Head/header.scss +++ b/src/forge/Head/header.scss @@ -5,7 +5,13 @@ background:#fff; border-radius: 3px; .ant-menu-vertical > .ant-menu-item{ - border:none + border:none; + height: 35px; + line-height: 35px; + margin:0px; + } + .ant-menu-vertical{ + border:none; } } diff --git a/src/forge/New/Index.js b/src/forge/New/Index.js index 703e2cd34..381d74382 100644 --- a/src/forge/New/Index.js +++ b/src/forge/New/Index.js @@ -43,7 +43,8 @@ class Index extends Component { project_language_name: undefined, project_category_name: undefined, license_name: undefined, - ignore_name: undefined + ignore_name: undefined, + descNum:0 } } componentDidMount = () => { @@ -254,6 +255,13 @@ class Index extends Component { } } + changeDesc=(e)=>{ + let value = e.target.value; + this.setState({ + descNum:value ? value.length :0 + }) + } + render() { const { getFieldDecorator } = this.props.form; // 项目类型:deposit-托管项目,mirror-镜像项目 @@ -273,7 +281,9 @@ class Index extends Component { license_list, ignore_list, - mirrorCheck + mirrorCheck, + + descNum } = this.state; return (
    @@ -364,18 +374,20 @@ class Index extends Component { )} - - - {getFieldDecorator('description', { - rules: [{ - required: true, message: '请填写项目简介' - }], - })( - - )} - +
    + {descNum}/200 + + {getFieldDecorator('description', { + rules: [{ + required: true, message: '请填写项目简介' + }], + })( + + )} + +
    @@ -384,7 +396,7 @@ class Index extends Component { required: true, message: '请填写仓库名称' }], })( - + )} )} + })()}
    , true )} - {helper( - 团队描述:(描述团队的目的或作用), - "description", - [], -