diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css
index 7ada96f4..fa09777e 100644
--- a/public/css/edu-purge.css
+++ b/public/css/edu-purge.css
@@ -6703,4 +6703,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
new file mode 100644
index 00000000..dd947501
--- /dev/null
+++ b/src/forge/Divert/DivertModal.jsx
@@ -0,0 +1,174 @@
+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';
+
+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(()=>{
+ setFieldsValue({goal:cate})
+ },[])
+
+ useEffect(()=>{
+ if(owner && repo && visible===true){
+ getTeam();
+ }
+ if(!visible){
+ setFieldsValue({
+ owner_name:undefined,
+ identifier:undefined
+ })
+ setValue(undefined)
+ }
+ },[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)=>{
+ console.log(...values);
+ if(!error){
+ const url = `/${owner}/${repo}/applied_transfer_projects.json`;
+ Axios.post(url,{
+ ...values
+ }).then(result=>{
+ if(result){
+ onSuccess(result.data && result.data.owner);
+ }
+ }).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 },
+ };
+
+ function getUser(id){
+ setValue(id);
+ setFieldsValue({
+ owner_name:id
+ })
+ }
+ return(
+
+
+ :
+
+
+ }
+