运营人员权限增加

dev_admin
daiao 6 years ago
commit d8b1a39e4c

@ -298,7 +298,13 @@ class CoursesController < ApplicationController
@applications = CourseMessage.unhandled_join_course_requests_by_course(@course). @applications = CourseMessage.unhandled_join_course_requests_by_course(@course).
joins("join users on course_messages.course_message_id=users.id"). joins("join users on course_messages.course_message_id=users.id").
where("LOWER(concat(users.lastname, users.firstname)) LIKE ?", "%#{search_str}%") where("LOWER(concat(users.lastname, users.firstname)) LIKE ?", "%#{search_str}%")
@teacher_list_size = @course.teachers.size if @course.try(:id) != 1309 || current_user.admin? || current_user.try(:id) == 15582
teacher_list = @course.course_members.where("course_members.role in (1, 2, 3)")
else
teacher_list = @course.course_members.where("(course_members.role in (1, 3) or (course_members.user_id = #{current_user.id}
and course_members.role = 2))")
end
@teacher_list_size = teacher_list.size
@applications_size = CourseMessage.unhandled_join_course_requests_by_course(@course).size @applications_size = CourseMessage.unhandled_join_course_requests_by_course(@course).size
@is_admin = @user_course_identity < Course::PROFESSOR @is_admin = @user_course_identity < Course::PROFESSOR
end end
@ -924,16 +930,23 @@ class CoursesController < ApplicationController
course_message = CourseMessage.new(course_id: course.id, user_id: course.tea_id, status: 0, course_message = CourseMessage.new(course_id: course.id, user_id: course.tea_id, status: 0,
course_message_id: current_user.id, course_message_type: "JoinCourseRequest", course_message_id: current_user.id, course_message_type: "JoinCourseRequest",
viewed: false) viewed: false)
course_message.content = 2 if params[:professor].present? && params[:professor].to_i == 1 if params[:professor].present? && params[:professor].to_i == 1
course_message.content = 3 if params[:assistant_professor].present? && params[:assistant_professor].to_i == 1 course_message.content = 2
role = 9
message = "教师申请已提交,请等待审核"
else
course_message.content = 3
role = 7
message = "助教申请已提交,请等待审核"
end
course_message.save! course_message.save!
role = course_message.content == 2 ? '9' : '7' # 7:助教 9:教师 # role = course_message.content == 2 ? '9' : '7' # 7:助教 9:教师
ApplyTeacherRoleJoinCourseNotifyJob.perform_later(current_user.id, course.id, role) ApplyTeacherRoleJoinCourseNotifyJob.perform_later(current_user.id, course.id, role)
message = "#{course_message.content == 2 ? '教师' : '助教'}申请已提交,请等待审核" # message = "#{course_message.content == 2 ? '教师' : '助教'}申请已提交,请等待审核"
else else
message = "#{existing_course_message.content == 2 ? '教师' : '助教'}申请已提交,请等待审核" message = "#{existing_course_message.content == '2' ? '教师' : '助教'}申请已提交,请等待审核"
end end
else else
message = "您已是课堂成员" message = "您已是课堂成员"

@ -265,9 +265,10 @@ class MyshixunsController < ApplicationController
# params[:evaluate] 实训评测时更新必须给的参数,需要依据该参数做性能统计,其它类型的更新可以跳过 # params[:evaluate] 实训评测时更新必须给的参数,需要依据该参数做性能统计,其它类型的更新可以跳过
# 自动保存的时候evaluate为0点评测的时候为1 # 自动保存的时候evaluate为0点评测的时候为1
if params[:evaluate] == 1 if params[:evaluate] == 1
exec_time = game.challenge.try(:exec_time)
@sec_key = generate_identifier(EvaluateRecord, 12) @sec_key = generate_identifier(EvaluateRecord, 12)
record = EvaluateRecord.create!(:user_id => current_user.id, :shixun_id => @myshixun.shixun_id, :game_id => game_id, record = EvaluateRecord.create!(:user_id => current_user.id, :shixun_id => @myshixun.shixun_id, :game_id => game_id,
:identifier => @sec_key) :identifier => @sec_key, :exec_time => exec_time)
uid_logger("-- game build: file update #{@sec_key}, record id is #{record.id}, time is **** #{Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")}") uid_logger("-- game build: file update #{@sec_key}, record id is #{record.id}, time is **** #{Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")}")
end end
unless @hide_code unless @hide_code

@ -62,14 +62,17 @@ module ApplicationHelper
# shixun开启挑战对应的行为名及url # shixun开启挑战对应的行为名及url
def task_operation_url current_myshixun, shixun def task_operation_url current_myshixun, shixun
url = "/shixuns/#{shixun.identifier}/shixun_exec"
name =
if current_myshixun.blank? if current_myshixun.blank?
shixun.status == 0 ? "模拟实战" : "开启挑战" name = shixun.status == 0 ? "模拟实战" : "开启挑战"
elsif current_myshixun.status == 1 url = "/shixuns/#{shixun.identifier}/shixun_exec"
"查看实战"
else else
"继续挑战" identifier = current_myshixun.current_task(current_myshixun.games).try(:identifier)
if current_myshixun.status == 1
name = "查看实战"
else
name = "继续挑战"
end
url = identifier
end end
[name, url] [name, url]
end end

@ -11,7 +11,7 @@ class CourseMessage < ApplicationRecord
def pass! def pass!
update!(status: :PASSED) update!(status: :PASSED)
send_deal_tiding send_deal_tiding(1)
end end
def application_user def application_user
@ -20,16 +20,16 @@ class CourseMessage < ApplicationRecord
def reject! def reject!
update!(status: :REJECTED) update!(status: :REJECTED)
send_deal_tiding send_deal_tiding(2)
end end
private private
def send_deal_tiding def send_deal_tiding deal_status
# 发送申请处理结果消息 # 发送申请处理结果消息
Tiding.create!( Tiding.create!(
user_id: course_message_id, trigger_user: User.current, container_id: course_id, container_type: 'DealCourse', user_id: course_message_id, trigger_user: User.current, container_id: course_id, container_type: 'DealCourse',
belong_container: course, extra: content.to_i == 2 ? '7' : '9', tiding_type: 'System', status: status == :PASSED ? 1 : 2 belong_container: course, extra: content.to_i == 2 ? '9' : '7', tiding_type: 'System', status: deal_status
) )
# 将申请消息置为已处理 # 将申请消息置为已处理
Tiding.where(trigger_user_id: user_id, container_id: course_id, container_type: 'JoinCourse', status: 0).update_all(status: 1) Tiding.where(trigger_user_id: user_id, container_id: course_id, container_type: 'JoinCourse', status: 0).update_all(status: 1)

@ -1,10 +1,10 @@
class AddPraisesCountToLibraries < ActiveRecord::Migration[5.2] class AddPraisesCountToLibraries < ActiveRecord::Migration[5.2]
def change def change
add_column :libraries, :praises_count, :integer, :default => 0 # add_column :libraries, :praises_count, :integer, :default => 0
#
Library.find_each do |library| # Library.find_each do |library|
praises_count = library.praise_treads.count # praises_count = library.praise_treads.count
library.update_column(:praises_count, praises_count) # library.update_column(:praises_count, praises_count)
end # end
end end
end end

@ -301,7 +301,7 @@ class BoardsNew extends Component{
`}</style> `}</style>
<div className="edu-class-container edu-position courseForm"> <div className="edu-class-container edu-position courseForm">
<CBreadcrumb items={[ <CBreadcrumb items={[
{ to: current_user.first_category_url, name: this.props.coursedata ? this.props.coursedata.name : ''}, { to: current_user&&current_user.first_category_url, name: this.props.coursedata ? this.props.coursedata.name : ''},
{ to: `/courses/${courseId}/boards/${boardId}`, name: this.state.board_name }, { to: `/courses/${courseId}/boards/${boardId}`, name: this.state.board_name },
{ name: this.isEdit ? '帖子编辑' : '帖子新建'} { name: this.isEdit ? '帖子编辑' : '帖子新建'}
]}></CBreadcrumb> ]}></CBreadcrumb>

@ -546,7 +546,7 @@ class TopicDetail extends Component {
} }
`}</style> `}</style>
<CBreadcrumb className={'independent'} items={[ <CBreadcrumb className={'independent'} items={[
{ to: current_user.first_category_url, name: this.props.coursedata.name}, { to: current_user&&current_user.first_category_url, name: this.props.coursedata.name},
{ to: `/courses/${courseId}/boards/${boardId}`, name: memo.board_name }, { to: `/courses/${courseId}/boards/${boardId}`, name: memo.board_name },
{ name: '帖子详情'} { name: '帖子详情'}
]}></CBreadcrumb> ]}></CBreadcrumb>

@ -223,7 +223,7 @@ class CommonWorkDetailIndex extends Component{
} }
`}</style> `}</style>
{current_user && <CBreadcrumb items={[ {current_user && <CBreadcrumb items={[
{ to: current_user.first_category_url , name: course_name}, { to: current_user&&current_user.first_category_url , name: course_name},
{ to: `/courses/${courseId}/${moduleEngName}/${category_id}`, name: category_name }, { to: `/courses/${courseId}/${moduleEngName}/${category_id}`, name: category_name },
window.location.pathname.indexOf('appraise') == -1 ? { } : { to: `/courses/${courseId}/${moduleEngName}/${workId}/list`, name: '作业详情' }, window.location.pathname.indexOf('appraise') == -1 ? { } : { to: `/courses/${courseId}/${moduleEngName}/${workId}/list`, name: '作业详情' },
// 1. 与上一条联动当匿评他人作品时TA人作品的作者真实姓名切换为“匿名” // 1. 与上一条联动当匿评他人作品时TA人作品的作者真实姓名切换为“匿名”

@ -90,7 +90,7 @@ class WorkDetailPageHeader extends Component{
} }
`}</style> `}</style>
<CBreadcrumb items={[ <CBreadcrumb items={[
{ to: current_user.first_category_url, name: course_name}, { to: current_user&&current_user.first_category_url, name: course_name},
{ to: `/courses/${courseId}/${moduleEngName}/${category_id}`, name: category_name }, { to: `/courses/${courseId}/${moduleEngName}/${category_id}`, name: category_name },
window.location.pathname.indexOf('appraise') == -1 ? { } : { to: `/courses/${courseId}/${moduleEngName}/${workId}/list`, name: '作业详情' }, window.location.pathname.indexOf('appraise') == -1 ? { } : { to: `/courses/${courseId}/${moduleEngName}/${workId}/list`, name: '作业详情' },
// 1. 与上一条联动当匿评他人作品时TA人作品的作者真实姓名切换为“匿名” // 1. 与上一条联动当匿评他人作品时TA人作品的作者真实姓名切换为“匿名”

@ -408,7 +408,7 @@ class ExerciceNew extends Component{
`}</style> `}</style>
<div className="edu-class-container edu-position courseForm"> <div className="edu-class-container edu-position courseForm">
{ current_user && <CBreadcrumb items={[ { current_user && <CBreadcrumb items={[
{ to: current_user.first_category_url, name: this.props.coursedata ? this.props.coursedata.name : ''}, { to: current_user&&current_user.first_category_url, name: this.props.coursedata ? this.props.coursedata.name : ''},
{ to: `/courses/${courseId}/exercises/${left_banner_id}`, name: '试卷列表' }, { to: `/courses/${courseId}/exercises/${left_banner_id}`, name: '试卷列表' },
{ name: this.isEdit ? '编辑试卷' : '新建试卷'} { name: this.isEdit ? '编辑试卷' : '新建试卷'}
]}></CBreadcrumb> } ]}></CBreadcrumb> }

@ -105,7 +105,7 @@ class GraduateTopicDetail extends Component{
<div className="newMain"> <div className="newMain">
<div className="educontent mt10 mb50"> <div className="educontent mt10 mb50">
<p className="clearfix mb15 lineh-20"> <p className="clearfix mb15 lineh-20">
<WordsBtn style="grey" className="fl" to={current_user.first_category_url}>{tableData && tableData.course_name}</WordsBtn> <WordsBtn style="grey" className="fl" to={current_user&&current_user.first_category_url}>{tableData && tableData.course_name}</WordsBtn>
<span className="color-grey-9 fl ml3 mr3">&gt;</span> <span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl" to={`/courses/${tableData.course_id}/graduation_topics/${tableData.graduation_id}`}>{tableData.graduation_name}</WordsBtn> <WordsBtn style="grey" className="fl" to={`/courses/${tableData.course_id}/graduation_topics/${tableData.graduation_id}`}>{tableData.graduation_name}</WordsBtn>
<span className="color-grey-9 fl ml3 mr3">&gt;</span> <span className="color-grey-9 fl ml3 mr3">&gt;</span>

@ -323,7 +323,7 @@ class GraduateTopicNew extends Component{
`}</style> `}</style>
<div className="edu-class-container edu-position courseForm"> <div className="edu-class-container edu-position courseForm">
<p className="clearfix mb20 mt10"> <p className="clearfix mb20 mt10">
<WordsBtn style="grey" className="fl" to={current_user.first_category_url}>{course_name}</WordsBtn> <WordsBtn style="grey" className="fl" to={current_user&&current_user.first_category_url}>{course_name}</WordsBtn>
<span className="color-grey-9 fl ml3 mr3">&gt;</span> <span className="color-grey-9 fl ml3 mr3">&gt;</span>
<WordsBtn style="grey" className="fl" to={`/courses/${coursesId}/graduation_topics/${left_banner_id}`}>{left_banner_name}</WordsBtn> <WordsBtn style="grey" className="fl" to={`/courses/${coursesId}/graduation_topics/${left_banner_id}`}>{left_banner_name}</WordsBtn>
<span className="color-grey-9 fl ml3 mr3">&gt;</span> <span className="color-grey-9 fl ml3 mr3">&gt;</span>

@ -56,16 +56,17 @@ class ShixunhomeWorkItem extends Component{
startbtn:true, startbtn:true,
}) })
let url= list+".json"; let url= list+".json";
const w=window.open('about:blank');
axios.get(url).then((response) => { axios.get(url).then((response) => {
if(response.status===200){ if(response.status===200){
if(response.data.status===-2){ if(response.data.status===-2){
this.setState({ this.setState({
startbtn:false, startbtn:false,
shixunsreplace:true, shixunsreplace:true,
hidestartshixunsreplacevalue:response.data.message+".json" hidestartshixunsreplacevalue:response.data.message+".json"
}) })
w.close()
}else if(response.data.status===-1){ }else if(response.data.status===-1){
console.log(response) console.log(response)
}else if(response.data.status===-3){ }else if(response.data.status===-3){
@ -74,11 +75,9 @@ class ShixunhomeWorkItem extends Component{
startshixunCombattype:true, startshixunCombattype:true,
startbtn:false startbtn:false
}) })
w.close()
}else{ }else{
if(response.data.status!=401&&response.data.status!=403){ if(response.data.status!=401&&response.data.status!=403){
const w=window.open('about:blank');
w.location.href= "/tasks/"+response.data.game_identifier w.location.href= "/tasks/"+response.data.game_identifier
} }
@ -88,6 +87,8 @@ class ShixunhomeWorkItem extends Component{
this.setState({ this.setState({
startbtn:false startbtn:false
}) })
w.close()
}); });
} }

@ -691,13 +691,15 @@ class MemoDetail extends Component {
<div className="clearfix"> <div className="clearfix">
<div id="forum_list" className="forum_table mh650"> <div id="forum_list" className="forum_table mh650">
<div className="padding40-30 bor-bottom-greyE"> <div className="padding40-30 bor-bottom-greyE">
<div className="font-16 mb5 cdefault clearfix pr pr35"> <div className="font-16 mb5 cdefault clearfix pr pr35" style={{display: 'flex', alignItems: 'center'}}>
<span className="noteDetailTitle">{memo.subject}</span> <span className="noteDetailTitle">{memo.subject}</span>
{ memo.sticky && <span className="btn-cir btn-cir-red ml10 mt10">置顶</span>} { memo.sticky && <span className="btn-cir btn-cir-red ml10 " style={{ height: '20px' }}>置顶</span>}
{ !!memo.reward && <span className="color-orange font-14 ml15" { !!memo.reward && <span className="color-orange font-14 ml15"
data-tip-down={`获得平台奖励金币:${memo.reward}`} > data-tip-down={`获得平台奖励金币:${memo.reward}`} >
<i className="iconfont icon-gift mr5"></i>{memo.reward} <i className="iconfont icon-gift mr5"></i>{memo.reward}
</span> } </span> }
<div style={{ flex: 1 }}>
{ _current_user && (_current_user.admin === true || _current_user.user_id === author_info.user_id) && { _current_user && (_current_user.admin === true || _current_user.user_id === author_info.user_id) &&
<div className="edu-position-hidebox" style={{position: 'absolute', right: '12px',top:'4px'}}> <div className="edu-position-hidebox" style={{position: 'absolute', right: '12px',top:'4px'}}>
<a href="javascript:void(0);"><i className="fa fa-bars font-16"></i></a> <a href="javascript:void(0);"><i className="fa fa-bars font-16"></i></a>
@ -725,6 +727,7 @@ class MemoDetail extends Component {
返回 返回
</Link> </Link>
</div> </div>
</div>
<div className="color-grey-9 clearfix"> <div className="color-grey-9 clearfix">
<span className="fl">{moment(memo.time).fromNow()} 发布</span> <span className="fl">{moment(memo.time).fromNow()} 发布</span>
<div className="fr detailIcons"> <div className="fr detailIcons">
@ -804,7 +807,7 @@ class MemoDetail extends Component {
></Comments> ></Comments>
{ hasMoreComments ? { hasMoreComments ?
<div className="memoMore"> <div className="memoMore" style={{ cursor: 'default' }}>
<a onClick={this.moreMemos}>查看更多评论</a> <a onClick={this.moreMemos}>查看更多评论</a>
<div className="writeCommentBtn" onClick={this.showCommentInput}>写评论</div> <div className="writeCommentBtn" onClick={this.showCommentInput}>写评论</div>
</div> </div>

@ -27,7 +27,7 @@
cursor: pointer; cursor: pointer;
} }
#forum_list .return_btn.no_mr { #forum_list .return_btn.no_mr {
margin-right: -16px; margin-right: -24px !important;
} }
div#forum_list>div { div#forum_list>div {
background: #fff; background: #fff;

@ -126,7 +126,7 @@ return function wrap(WrappedComponent) {
} }
const orderTypeMap = { const orderTypeMap = {
'hottest': 'replies_count', 'hottest': 'replies_count',
'newest': 'updated_at', // 'created_at', 'newest': 'created_at', // 'created_at',
} }
const _search = this.props.history.location.search; const _search = this.props.history.location.search;
const parsed = queryString.parse(_search); const parsed = queryString.parse(_search);

@ -495,10 +495,10 @@ class MessagSub extends Component{
<div className="bor-top-greyE mycenter"> <div className="bor-top-greyE mycenter">
{/*这里可以进行数据处理*/} {/*这里可以进行数据处理*/}
<div className="myw100baifenbi"> <div className="myw100baifenbi">
<Spin size="large" className="myw100baifenbi" spinning={isSpin}> <Spin size="large" className="myw100baifenbi mt10" spinning={isSpin}>
{ {
data===undefined? data===undefined?"":data.length===0?
<div className="edu-tab-con-box clearfix edu-txt-center"> <div className="edu-tab-con-box clearfix edu-txt-center">
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/> <img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/>
<p className="edu-nodata-p mb20">暂无数据哦~</p> <p className="edu-nodata-p mb20">暂无数据哦~</p>
@ -562,7 +562,7 @@ class MessagSub extends Component{
` `
} }
</style> </style>
<p className="color-grey-6 break_word_firefox yslspansk markdown-body mt3" style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html: markdownToHTML(item.content).replace(/▁/g, "▁▁▁")}} ></p> <p className="color-grey-6 break_word_firefox yslspansk markdown-body mt10" style={{wordBreak: "break-word"}} dangerouslySetInnerHTML={{__html: markdownToHTML(item.content).replace(/▁/g, "▁▁▁")}} ></p>
</div> </div>
<span className={item.new_tiding===true?"new-point fr mr40 mt22":""}></span> <span className={item.new_tiding===true?"new-point fr mr40 mt22":""}></span>

@ -160,14 +160,13 @@ class MessagePrivate extends Component{
<Spin size="large" className="myw100baifenbi" spinning={isSpin}> <Spin size="large" className="myw100baifenbi" spinning={isSpin}>
{ {
data===undefined? data===undefined?"":data.length===0?
<div className="edu-tab-con-box clearfix edu-txt-center"> <div className="edu-tab-con-box clearfix edu-txt-center">
<img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/> <img className="edu-nodata-img mb20" src={getImageUrl("images/educoder/nodata.png")}/>
<p className="edu-nodata-p mb20">暂无数据哦~</p> <p className="edu-nodata-p mb20">暂无数据哦~</p>
</div> </div>
:data.map((item,key)=>{ :data.map((item,key)=>{
return( return(
<div className="private-item clearfix df" key={key} onClick={()=>this.smyJump(3,item.target.id)}> <div className="private-item clearfix df" key={key} onClick={()=>this.smyJump(3,item.target.id)}>
<a className="fl mr10 private_message_a" onMouseDown={()=>this.myCome(item)}> <a className="fl mr10 private_message_a" onMouseDown={()=>this.myCome(item)}>
<img onMouseDown={()=>this.myCome(item)} src={getImageUrl("images/"+item.target.image_url)} className="radius myimgw48 myimgh48"/> <img onMouseDown={()=>this.myCome(item)} src={getImageUrl("images/"+item.target.image_url)} className="radius myimgw48 myimgh48"/>
@ -179,12 +178,11 @@ class MessagePrivate extends Component{
<span className="color-grey-c mr20">[{item.message_count}{"条"}]</span> <span className="color-grey-c mr20">[{item.message_count}{"条"}]</span>
<span className="color-grey-c">{moment(item.send_time).fromNow()}</span> <span className="color-grey-c">{moment(item.send_time).fromNow()}</span>
</p> </p>
<span className="color-grey-6 break_word_firefox markdown-body" dangerouslySetInnerHTML={{__html: markdownToHTML(item.content).replace(/▁/g, "▁▁▁")}} ></span> <div className="color-grey-6 break_word_firefox markdown-body mt10" dangerouslySetInnerHTML={{__html: markdownToHTML(item.content).replace(/▁/g, "▁▁▁")}} ></div>
</div> </div>
{item.unread === true ?<span className="new-point fr mt22"></span>:""} {item.unread === true ?<span className="new-point fr mt22"></span>:""}
</div> </div>
) )
})} })}
</Spin> </Spin>

@ -409,7 +409,7 @@ class PackageIndexNEITaskDetails extends Component {
return( return(
<div className="ysldivhomediv1s homehove" key={key}> <div className="ysldivhomediv1s homehove" key={key}>
{item.status==="bidding_won"?<img src={gouxuan} className="yslgouxuanimg"/>:""} {item.status==="bidding_won"?<img src={gouxuan} className="yslgouxuanimg"/>:""}
<a href={`/users/${item.login}`}><img className="div1imgs" src={getImageUrl("images/"+item.image_url)}/></a> <a className={item.status==="bidding_won"?"":"mt20"} href={`/users/${item.login}`}><img className="div1imgs" src={getImageUrl("images/"+item.image_url)}/></a>
<div className="textall mt10" title={item.name}> <p className="ptext">{item.name}</p></div> <div className="textall mt10" title={item.name}> <p className="ptext">{item.name}</p></div>
{this.props.current_user&&this.props.current_user.login!=item.login?<a className="ContacttheTAs fl none" target="_blank" href={`/messages/${this.props.current_user&&this.props.current_user.login}/message_detail?target_ids=${item.id}`}> {this.props.current_user&&this.props.current_user.login!=item.login?<a className="ContacttheTAs fl none" target="_blank" href={`/messages/${this.props.current_user&&this.props.current_user.login}/message_detail?target_ids=${item.id}`}>
<img alt="头像" className="mr5" src={require('./newstwo.png')}/>联系TA <img alt="头像" className="mr5" src={require('./newstwo.png')}/>联系TA

@ -1391,13 +1391,13 @@ export default class TPMsettings extends Component {
}) })
} }
</Select> </Select>
<p {/*<p*/}
className="edu-txt-left font-12" {/*className="edu-txt-left font-12"*/}
style={{display:operateauthority?"block":'none'}} {/*style={{display:operateauthority?"block":'none'}}*/}
> {/*>*/}
列表中没有 {/*列表中没有?*/}
<a className="color-blue" onClick={this.post_apply}>申请新建</a> {/*<a className="color-blue" onClick={this.post_apply}>申请新建</a>*/}
</p> {/*</p>*/}
<Modal <Modal
keyboard={false} keyboard={false}

Loading…
Cancel
Save