From 029bb89b113a5896b211af6b3f6056da05d865ed Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 21 Jan 2021 18:01:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Component/UploadImage.jsx | 58 +++++++++++++++++++++++ src/forge/Team/New.jsx | 60 +++++++++++++++++------- 2 files changed, 100 insertions(+), 18 deletions(-) create mode 100644 src/forge/Team/Component/UploadImage.jsx diff --git a/src/forge/Team/Component/UploadImage.jsx b/src/forge/Team/Component/UploadImage.jsx new file mode 100644 index 00000000..93f6dc06 --- /dev/null +++ b/src/forge/Team/Component/UploadImage.jsx @@ -0,0 +1,58 @@ +import React, { useState } from 'react'; +import { Upload , Icon , message } from "antd"; +import { getUploadActionUrl } from 'educoder'; + +function UploadImage({ getImage }){ + const [ imageUrl , setImageUrl ] = useState(undefined); + + function getBase64(img, callback) { + const reader = new FileReader(); + reader.addEventListener('load', () => callback(reader.result)); + reader.readAsDataURL(img); + reader.onload = function(e) { + getImage && getImage(e.target.result); // 上传的图片的编码 + } + } + // 上传前 + function beforeUpload(file){ + const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; + if (!isJpgOrPng) { + message.error('上传的图片只能是JPG或者PNG格式!'); + } + const isLt2M = file.size / 1024 / 1024 < 2; + if (!isLt2M) { + message.error('上传的图片不能超过2MB!'); + } + return isJpgOrPng && isLt2M; + } + // 上传完成后 + function handleChange(info){ + if(info && info.file && info.file.status === "done"){ + getBase64(info.file.originFileObj, imageUrl => + setImageUrl(imageUrl) + ); + } + } + return( + + { + imageUrl ? + avatar + : +
+ +
点击上传
+
+ } +
+ ) +} +export default UploadImage; \ No newline at end of file diff --git a/src/forge/Team/New.jsx b/src/forge/Team/New.jsx index 675566f1..868b8211 100644 --- a/src/forge/Team/New.jsx +++ b/src/forge/Team/New.jsx @@ -1,11 +1,15 @@ -import React,{ forwardRef , useCallback } from 'react'; +import React,{ forwardRef , useCallback, useEffect, useState } from 'react'; import './Index.scss'; -import { Form , Input , Cascader , Radio , Checkbox , Upload , Button } from "antd"; -import { locData } from "../Utils/locData"; +import { Form , Input , Radio , Checkbox , Button, InputNumber } from "antd"; +import UploadImage from './Component/UploadImage'; +import axios from 'axios'; export default Form.create()( - forwardRef(({form})=>{ - const { getFieldDecorator, validateFields, setFieldsValue } = form; + forwardRef(({form , showNotification ,history})=>{ + const [ image , setImage ] = useState(undefined); + + const { getFieldDecorator, validateFields , setFieldsValue } = form; + const radioStyle = { display: 'block', height: '30px', @@ -14,7 +18,7 @@ export default Form.create()( const helper = useCallback( (label, name, rules, widget, isRequired = true) => ( - {label} + {label} {getFieldDecorator(name, { rules, validateFirst: true })(widget)} @@ -22,6 +26,28 @@ export default Form.create()( ), [] ); + + // 获取上传的图片 + function getImage(image){ + setImage(image); + } + + // 创建组织 + function createOrganize(){ + validateFields((error,values)=>{ + if(!error){ + const url = `/organizations.json`; + axios.post(url,{ + ...values,image + }).then(result=>{ + if(result && result.data){ + showNotification("组织创建成功!"); + } + }).catch(error=>{}) + } + }) + } + return(
@@ -49,24 +75,22 @@ export default Form.create()( '所在地区', "location", [], - ,false + // ,false + ,false )} {helper( '可见性', "visibility", [{ required: true, message: "请选择可见性" }], - 公开 - 受限(仅对登录用户可见) - 公开(仅对组织成员可见) + 公开 + 受限(仅对登录用户可见) + 公开(仅对组织成员可见) )} - {helper( - '选择头像', - "image", - [], - ,false - )} +

选择头像

+ + {helper( '权限', "repo_admin_change_team_access", @@ -77,14 +101,14 @@ export default Form.create()( 最大仓库数:(设置为-1表示使用全局默认值), "max_repo_creation", [], - ,false )}

- +