diff --git a/src/forge/New/Index.js b/src/forge/New/Index.js index 68ec6cad7..294616766 100644 --- a/src/forge/New/Index.js +++ b/src/forge/New/Index.js @@ -1,11 +1,12 @@ import React , { Component } from 'react'; import { Link } from 'react-router-dom'; -import { Input , Form , Select , Checkbox , Button , Divider ,Spin } from 'antd'; +import { Input , Form , Select , Checkbox , Button , Divider , Spin , AutoComplete } from 'antd'; import '../css/index.css'; import './new.css' import axios from 'axios' ; +import { callbackify } from 'util'; const Option = Select.Option class Index extends Component{ constructor(props){ @@ -23,6 +24,21 @@ class Index extends Component{ GitignoreList:undefined, LicensesList:undefined, isSpin:false, + + project_language_id:undefined, + project_category_id:undefined, + license_id:undefined, + ignore_id:undefined, + + project_language_list:undefined, + project_category_list:undefined, + license_list:undefined, + ignore_list:undefined, + + project_language_name:undefined, + project_category_name:undefined, + license_name:undefined, + ignore_name:undefined } } getUserInfo=()=>{ @@ -53,9 +69,9 @@ class Index extends Component{ const url = `/project_categories.json` axios.get(url).then((result)=>{ if(result){ - let CategoryList = this.setOptionsList(result.data.project_categories) + this.setOptionsList(result.data.project_categories,'project_category'); this.setState({ - CategoryList + CategoryList:result.data.project_categories }) } }).catch((error)=>{}) @@ -65,9 +81,9 @@ class Index extends Component{ const url = `/project_languages.json` axios.get(url).then((result)=>{ if(result){ - let LanguageList = this.setOptionsList(result.data.project_languages) + this.setOptionsList(result.data.project_languages,'project_language') this.setState({ - LanguageList + LanguageList:result.data.project_languages }) } }).catch((error)=>{}) @@ -77,9 +93,9 @@ class Index extends Component{ const url = `/ignores.json` axios.get(url).then((result)=>{ if(result){ - let GitignoreList = this.setOptionsList(result.data.ignores) + this.setOptionsList(result.data.ignores,'ignore'); this.setState({ - GitignoreList + GitignoreList:result.data.ignores }) } }).catch((error)=>{}) @@ -89,24 +105,30 @@ class Index extends Component{ const url = `/licenses.json` axios.get(url).then((result)=>{ if(result){ - let LicensesList = this.setOptionsList(result.data.licenses) + this.setOptionsList(result.data.licenses,'license'); this.setState({ - LicensesList + LicensesList:result.data.licenses }) } }).catch((error)=>{}) } - setOptionsList = (data) =>{ - let list = undefined; + // 设置option + setOptionsList = (data,_head,name) =>{ if(data && data.length > 0){ - list = data.map((item,key)=>{ - return( - - ) + let _data = data; + if(name){ + _data = data.filter(item=>item.name.indexOf(name)>-1); + } + let list = _data && _data.map((item) => ( + + )); + this.setState({ + [_head+"_list"]:list }) } - return list; } subMitFrom = () =>{ @@ -117,9 +139,14 @@ class Index extends Component{ if(!err){ const { current_user } = this.props; const { projectsType } =this.props.match.params; + const { project_language_id, project_category_id, license_id, ignore_id } = this.state; const url = projectsType === "deposit" ? "/projects.json" :"/projects/migrate.json"; axios.post(url,{ ...values, + project_language_id, + project_category_id, + license_id, + ignore_id, user_id:current_user.user_id }).then((result)=>{ if(result){ @@ -145,6 +172,39 @@ class Index extends Component{ }) } + ChangePlatform=(value,e,name,list)=>{ + this.setOptionsList(list,name,value) + this.setState({ + [name+"_id"]:e.key, + [name+"_name"]:value, + }) + } + + blurCategory=(value,list,name)=>{ + // console.log(value); + let filter = list && list.filter(item=>item.name === value); + if(!filter || filter.length===0){ + this.props.form.setFieldsValue({ + [name]:undefined + }) + this.setState({ + [name+"_name"]:undefined, + [name+"_id"]:undefined + }) + this.setOptionsList(list,name); + } + } + + checkId=(rule, value, callback,list,title)=>{ + let filter = list.filter(item=>item.name === value); + if(filter && filter.length>0){ + callback(); + }else{ + callback('请在下拉选项中选择正确的'+title+"!"); + } + callback(); + } + render(){ const { getFieldDecorator } = this.props.form; // 项目类型:deposit-托管项目,mirror-镜像项目 @@ -161,10 +221,18 @@ class Index extends Component{ LanguageList, GitignoreList, LicensesList, - isSpin - }=this.state; + isSpin, + project_language_name, + project_category_name, + license_name, + ignore_name, - console.log("current_user",this.props); + project_language_list, + project_category_list, + license_list, + ignore_list, + }=this.state; + console.log("a:",project_category_list); return(
{ quillFlag && 请输入评论内容} @@ -538,8 +541,7 @@ class Detail extends Component{ options={options} value={quillValue} onContentChange={this.onContentChange} - showUploadImage={this.handleShowImage} - // onContentChange={handleContentChange} + // showUploadImage={this.handleShowImage} />
{ quillFlag && 请输入评论内容} diff --git a/src/forge/Order/UpdateDetail.js b/src/forge/Order/UpdateDetail.js index e2e17d532..438a44ecc 100644 --- a/src/forge/Order/UpdateDetail.js +++ b/src/forge/Order/UpdateDetail.js @@ -109,7 +109,7 @@ class UpdateDetail extends Component{ onContentChange=(value)=>{ this.setState({ - textcount:value + textcount:JSON.stringify(value) }) } @@ -174,12 +174,12 @@ class UpdateDetail extends Component{ project_id:projectsId, subject:subject, id: orderId, - description:JSON.stringify(textcount), + description:textcount, attachment_ids:fileList, ...values }).then(result=>{ if(result){ - this.props.history.push(`/projects/${projectsId}/orders`); + this.props.history.push(`/projects/${projectsId}/orders/${orderId}/detail`); } }).catch(error=>{ console.log(error);