Merge branch 'dev_aliyun' of https://bdgit.educoder.net/Hjqreturn/educoder into dev_aliyun

dev_forum
hjm 5 years ago
commit a30b80748c

@ -319,6 +319,8 @@ class ApplicationController < ActionController::Base
# 通关后,把最后一次成功的代码存到数据库
# type 0 创始内容, 1 最新内容
def game_passed_code(path, myshixun, game_id)
# 如果代码窗口是隐藏的,则不用保存代码
return if myshixun.shixun.hide_code
file_content = git_fle_content myshixun.repo_path, path
unless file_content.present?
raise("获取文件代码异常")

@ -169,7 +169,7 @@ class CoursesController < ApplicationController
extra_params[:school_id] = @school.id
extra_params[:is_public] = params[:is_public].present? ? params[:is_public] : 0
if @course.is_end && (course_params[:end_date].nil? || course_params[:end_date].to_date > Date.today)
if @course.is_end && (course_params[:end_date].blank? || course_params[:end_date].to_date > Date.today)
extra_params[:is_end] = 0
elsif !@course.is_end && !course_params[:end_date].blank? && course_params[:end_date].to_date < Date.today
extra_params[:is_end] = 1

@ -1,6 +1,6 @@
class DepartmentsController < ApplicationController
def for_option
render_ok(departments: Department.cached_names_data(current_school))
render_ok(departments: current_school.departments.select(:id, :name).as_json)
end
private

@ -90,9 +90,11 @@ class MyshixunsController < ApplicationController
# params[:pics] = "a.png,b.png,c.png"
def training_task_status
logger.info("##################training_task_status_start#{params[:jsonTestDetails][:buildID]}")
ActiveRecord::Base.transaction do
begin
t1 = Time.now
Rails.logger.info("@@@222222#{params[:jsonTestDetails]}")
jsonTestDetails = JSON.parse(params[:jsonTestDetails])
timeCost = JSON.parse(params[:timeCost])
brige_end_time = Time.parse(timeCost['evaluateEnd']) if timeCost['evaluateEnd'].present?
@ -129,8 +131,8 @@ class MyshixunsController < ApplicationController
# is_public = test_sets.where(:position => j_test_set['caseId']).first.try(:is_public)
logger.info "actual_output:################################################# #{actual_output}"
ts_time = format("%.2f", j_test_set['testSetTime'].to_f/1000000000).to_f
ts_mem = format("%.2f", j_test_set['testSetMem'].to_f/1024/1024).to_f
ts_time = format("%.2f", j_test_set['testSetTime'].to_f/1000000000).to_f if j_test_set['testSetTime']
ts_mem = format("%.2f", j_test_set['testSetMem'].to_f/1024/1024).to_f if j_test_set['testSetMem']
Output.create!(:code => status, :game_id => game_id, :out_put => outPut, :test_set_position => j_test_set['caseId'],
:actual_output => actual_output, :result => j_test_set['passed'].to_i, :query_index => max_query_index,
@ -209,10 +211,10 @@ class MyshixunsController < ApplicationController
end
uid_logger("training_task_status start#4**#{game_id}**** #{Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")}")
sucess_status
rescue Exception => e
tip_exception(e.message)
uid_logger_error("training_task_status error: #{e}")
raise ActiveRecord::Rollback
# rescue Exception => e
# tip_exception(e.message)
# uid_logger_error("training_task_status error: #{e}")
# raise ActiveRecord::Rollback
end
end
end

@ -1,5 +1,5 @@
class RepertoiresController < ApplicationController
def index
render_ok(repertoires: Repertoire.cache_data)
render_ok(repertoires: Repertoire.select(:id, :name).order(:created_at).as_json)
end
end

@ -11,6 +11,6 @@ class SchoolsController < ApplicationController
end
def for_option
render_ok(schools: School.cached_names_data)
render_ok(schools: School.select(:id, :name).as_json)
end
end

@ -2,26 +2,4 @@ class Department < ApplicationRecord
belongs_to :school
has_many :department_members, dependent: :destroy
after_create_commit :reset_data_cache
after_update_commit :reset_data_cache
def self.cached_names_data(school)
Rails.cache.fetch(names_data_cache_key(school.id), expires_in: 7.days) do
school.departments.select(:id, :name).as_json
end
end
private
def reset_data_cache
# 清除部门名称缓存
if new_record? || name_previously_changed?
Rails.cache.delete(self.class.names_data_cache_key(school_id))
end
end
def self.names_data_cache_key(school_id)
"schools/#{school_id}/department_names_data"
end
end

@ -3,23 +3,4 @@ class Repertoire < ApplicationRecord
has_many :tag_repertoires, through: :sub_repertoires
has_many :user_interests, dependent: :delete_all
after_create_commit :reset_cache_data
after_update_commit :reset_cache_data
def self.cache_data
Rails.cache.fetch(data_cache_key, expires_in: 1.days) do
Repertoire.select(:id, :name).order(:created_at).as_json
end
end
def self.data_cache_key
'repertoire/cache_data'
end
private
def reset_cache_data
Rails.cache.delete(self.class.data_cache_key)
end
end

@ -10,9 +10,6 @@ class School < ApplicationRecord
has_many :ec_major_schools, :dependent => :destroy
has_many :ec_majors, :through => :ec_major_schools
after_create_commit :reset_data_cache
after_update_commit :reset_data_cache
# 学校管理员
def manager?(user)
ec_school_users.exists?(user_id: user.id)
@ -33,23 +30,4 @@ class School < ApplicationRecord
def manage_permission?(user)
manager?(user) || major_manager?(user) || course_manager?(user)
end
def self.cached_names_data
Rails.cache.fetch(names_data_cache_key, expires_in: 7.days) do
School.select(:id, :name).as_json
end
end
private
def reset_data_cache
# 清除学校名称缓存
if new_record? || name_previously_changed?
Rails.cache.delete(self.class.names_data_cache_key)
end
end
def self.names_data_cache_key
'schools/names_data'
end
end

@ -301,8 +301,8 @@ module.exports = {
},
warnings: false,
compress: {
drop_debugger: true,
drop_console: true
drop_debugger: false,
drop_console: false
}
}
}),

@ -2,7 +2,7 @@ import React from "react";
import axios from 'axios';
import { requestProxy } from "./indexEduplus2RequestProxy";
import { broadcastChannelOnmessage ,SetAppModel, isDev, queryString} from 'educoder';
import { broadcastChannelOnmessage ,SetAppModel} from 'educoder';
import { notification } from 'antd';
import './index.css'
broadcastChannelOnmessage('refreshPage', () => {
@ -18,19 +18,10 @@ function locationurl(list){
}
// TODO 开发期多个身份切换
let debugType = ""
if (isDev) {
const _search = window.location.search;
let parsed = {};
if (_search) {
parsed = queryString.parse(_search);
}
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 || ''
}
window._debugType = debugType;
const debugType =""
// window.location.search.indexOf('debug=t') != -1 ? 'teacher' :
// window.location.search.indexOf('debug=s') != -1 ? 'student' : 'admin'
// window._debugType = debugType;
export function initAxiosInterceptors(props) {
// TODO 避免重复的请求 https://github.com/axios/axios#cancellation
@ -121,7 +112,7 @@ export function initAxiosInterceptors(props) {
// https://github.com/axios/axios/issues/583
// message.info(response.data.message || '服务端返回status -1请联系管理员。');
// props.showSnackbar( response.data.message || '服务器异常,请联系管理员。' )
if (window.location.pathname.startsWith('/tasks/')) {
if (window.location.pathname.startsWith('/tasks/')) {
props.showSnackbar( response.data.message || '服务器异常,请联系管理员。' )
} else {
notification.open({
@ -136,7 +127,7 @@ export function initAxiosInterceptors(props) {
// description: response.data.message || '服务器异常,请联系管理员。',
// });
}
throw new axios.Cancel('Operation canceled by the user.');
}
// if(response.data.status === 401){

@ -147,6 +147,8 @@ class Addcourses extends Component{
if(Addcoursestype===true){
this.props.hideAddcoursestype();
}else{
window.location.href = "/";
}
}

@ -88,11 +88,11 @@ class CoursesNew extends Component {
}
componentDidUpdate(prevProps){
if(prevProps.current_user!=this.props.current_user){
if(this.props.current_user.user_identity==="学生"){
window.location.href ="/403"
}
}
// if(prevProps.current_user!=this.props.current_user){
// if(this.props.current_user.user_identity==="学生"){
// window.location.href ="/403"
// }
// }
}
onChangeTimepublishs = (date, dateString) => {
if(dateString===""){
@ -132,7 +132,7 @@ class CoursesNew extends Component {
e.preventDefault();
let coursesId = this.props.match.params.coursesId;
let {is_public} = this.state
let {is_public,datatime} = this.state
// console.log(is_public)
if (coursesId != undefined) {
@ -173,7 +173,7 @@ class CoursesNew extends Component {
// console.log('Received values of form: ', values);
let {datatime} = this.state;
let url = "/courses/" + coursesId + ".json";
axios.put(url, {
course_list_name: values.course,
@ -227,7 +227,7 @@ class CoursesNew extends Component {
// debugger
//新建
// console.log('Received values of form: ', values);
let {datatime} = this.state;
let url = "/courses.json";
axios.post(url, {
course_list_name: values.course,

@ -382,7 +382,7 @@ class ShixunhomeWorkItem extends Component{
<a className="btn colorblue font-16" href={"/shixuns/"+discussMessage.shixun_identifier+"/challenges"} target={"_blank"}>实训详情</a>
{this.props.isAdminOrCreator()?<a onClick={()=>this.editname(discussMessage.name,discussMessage.homework_id)} className={"btn colorblue ml20 font-16"}>重命名</a>:""}
{/*<WordsBtn className="btn colorblue ml20 font-16" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>*/}
<WordsBtn className="btn colorblue font-16" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>
<WordsBtn className="btn colorblue font-16 ml15" to={`/courses/${this.props.match.params.coursesId}/${this.state.shixuntypes}/${discussMessage.homework_id}/settings?tab=3`} > 设置</WordsBtn>
</div>:""}

@ -9,7 +9,7 @@
/* z-index: 20000; */
}
#DialogID .dialogBox {
width: 402px;
width: 400px;
}
.MuiPaper-elevation24-45{
box-shadow:none !important;
@ -24,7 +24,7 @@
top: 0px !important;
}
#log_reg_content{
width:400px !important;
width:405px !important;
border-radius:6px;
box-shadow:4px 8px 12px rgba(76,76,76,0.3);
}

@ -406,7 +406,7 @@ class Trialapplication extends Component {
top: 0px !important;
}
#log_reg_content{
width:400px !important;
width:405px !important;
border-radius:40px !important;
box-shadow:4px 8px 12px rgba(76,76,76,0.3);
}

@ -424,7 +424,7 @@ class Trialapplicationysl extends Component {
top: 0px !important;
}
#log_reg_content{
width:400px !important;
width:405px !important;
border-radius:40px !important;
box-shadow:4px 8px 12px rgba(76,76,76,0.3);
}

@ -487,20 +487,22 @@ submittojoinclass=(value)=>{
}
showSearchOpen=(e)=>{
debugger
this.setState({
showSearchOpentype:true
})
e.stopPropagation(e);//阻止冒泡
}
hideshowSearchOpen=(e)=>{
debugger
let {setevaluatinghides}=this.state;
if(setevaluatinghides===true){
this.setState({
showSearchOpentype:false,
setevaluatinghides:false
})
e.stopPropagation(e);//阻止冒泡
}
}
@ -518,6 +520,7 @@ submittojoinclass=(value)=>{
}
setevaluatinghides=()=>{
debugger
this.setState(
{
setevaluatinghides:true
@ -599,6 +602,7 @@ submittojoinclass=(value)=>{
// rolearr:["",""],
// console.log("618");
// console.log(user_phone_binded);
console.log(showSearchOpentype)
return (
<div className="newHeader" id="nHeader" >
@ -669,8 +673,21 @@ submittojoinclass=(value)=>{
><a href={this.props.Headertop===undefined?"":this.props.Headertop.auth}>工程认证</a></li>
</ul>
<div className="posi-search" id="posi-search">
<style>
{
`
.posi-searchs{
opacity: 1;
position: absolute;
top: -2px;
background: #fff;
z-index: 2;
right: -241px;
}
`
}
</style>
<div className="posi-searchs" >
<div className="search-all clearfix">
{/*<!--<a href="javascript:void(0)" className="search-clear fl" onclick="closeSearch();">×</a>-->*/}
<div className="fl pr search-clear edu-menu-panel" style={{display: 'none'}}>
@ -686,7 +703,9 @@ submittojoinclass=(value)=>{
{/*<input type="text" className="search-input fl" id="search-input" */}
{/*onKeyDown={this.onKeywordSearchKeyDown} name="search_keyword" placeholder="搜索实训项目"/>*/}
{/*搜索框*/}
{showSearchOpentype===true?<div className={"HeaderSearch"} onBlur={(e)=>this.hideshowSearchOpen(e)} onMouseLeave={()=>this.setevaluatinghides()}>
{showSearchOpentype===true?<div
className={"HeaderSearch"}
onBlur={(e)=>this.hideshowSearchOpen(e)} onMouseLeave={()=>this.setevaluatinghides()}>
<Search
id={"HeaderSearchs"}
placeholder="实践课程/翻转课堂/开发社区/交流问答"
@ -901,169 +920,3 @@ submittojoinclass=(value)=>{
export default NewHeader;
// <ul id="header-nav">
// <li className="active">1{/*<%= link_to "首页", home_path %>*/}</li>
// <li>2{/*<%= link_to "精选实训", shixuns_path %>*/}</li>
// <li>3{/*<%= link_to "实训路径", subjects_path %>*/}</li>
// <li>4{/*<%= link_to "在线课堂", courses_path %>*/}</li>
// <li>5{/*<%= link_to "讨论组", forums_path %>*/}</li>
// </ul>
{/*{*/}
{/*<a href={this.props.Headertop===undefined?"":this.props.Headertop.message_url}*/}
{/*style={{display:this.props.Headertop===undefined?"none":this.props.Headertop.new_message===true?"block":"none",position:'relative'}}*/}
{/*>*/}
{/*<span className="newslight" style={{display:user!=undefined&&user.login!=""?"block":"none"}}>*/}
{/*/!*{this.props.Headertop===undefined?"":this.props.Headertop.unread_message_count > 99 ? '99+'*!/*/}
{/*/!*: this.props.Headertop===undefined?"":this.props.Headertop.unread_message_count}*!/*/}
{/*</span>*/}
{/*</a>*/}
{/*}*/}
{/*{ this.props.Headertop===undefined?"":this.props.Headertop.unread_message_count>0 &&*/}
{/*<a href={this.props.Headertop===undefined?"":this.props.Headertop.message_url}>*/}
{/*<span className="newslight" style={{display:user!=undefined&&user.login!=""?"block":"none"}}>*/}
{/*/!*{this.props.Headertop===undefined?"":this.props.Headertop.unread_message_count > 99 ? '99+'*!/*/}
{/*/!*: this.props.Headertop===undefined?"":this.props.Headertop.unread_message_count}*!/*/}
{/*</span>*/}
{/*</a>}*/}
{/*{ this.props.Headertop===undefined?"":user && this.props.Headertop.unread_message_count>0 &&*/}
{/*<span style={{display:user!=undefined&&user.login!=""?"block":"none"}}>*/}
{/*<div className="edu-menu-list edu-txt-center" style={{width: '220px', top: '60px'}}>*/}
{/*<a className="font-14 padding10" style={{lineHeight: '35px'}} href={this.props.Headertop===undefined?"":this.props.Headertop.message_url} >您有*/}
{/*<span className="color-orange">{this.props.Headertop===undefined?"":this.props.Headertop.unread_message_count}</span>*/}
{/*条新消息,点击查看</a>*/}
{/*</div>*/}
{/*</span>*/}
{/*}*/}
{/*
需求消息数量
<div className="fl mr30 edu-menu-panel headIcon">
<a href={`/users/${user.login}/user_tidings`}><img src={getImageUrl(`images/educoder/icon/bell.svg`}></a>
<em className="newslight"></em>
<div className="edu-menu-list edu-txt-center" style="width:220px;top:60px">
<a className="font-14 padding10" style="line-height: 35px;" href={`/users/${user.login}/user_tidings`}>
您有<span className="color-orange">30</span>
</a>
</div>
</div>
*/}
// function loadHeader(){
// //头部导航条的----------显示搜索框
// $("#search-open").on("click",function(e){
// $(this).hide();
// // $("#header-nav").animate({opacity:"0"},1000);
// $(".posi-search").show() // animate({opacity:"1"},1000);
// $("#header-nav").css("z-index","2");
// $(".posi-search").css("z-index","3");
// $(".HeaderSearch").show();
// $(".HeaderSearch").val("");
// $(".search-input").focus();
// $(".search-all .search-content").hide();
// e.stopPropagation();//阻止冒泡
// });
// $(".HeaderSearch").on("click",function(e){
// debugger
// e.stopPropagation();//阻止冒泡
// });
//搜索框输入内容
// $("#HeaderSearchs").blur(function(e){
// closeSearch();
// e.stopPropagation();//阻止冒泡
// });
//点击页面其它(与搜索框无关的地方)都会将搜索框隐藏,所以与搜索框有关的地方需要阻止冒泡
// $("body").on("click",function(){
// closeSearch();
// });
// $(".HeaderSearch").on("input",function(e){
// $(".search-all .search-content").show();
// e.stopPropagation();//阻止冒泡
// });
//搜索
// $("#header_keyword_search").on("click", header_search);
// $("input[name='search_keyword']").on("keydown", function(event){
// var code;
// if (!event) {
// event = window.event; //针对ie浏览器
// code = event.keyCode;
// }
// else {
// code = event.keyCode;
// }
// if(code == 13) {
// header_search();
// return false;
// }
// });
// $(".search-clear").click(function(e){e.stopPropagation();});
// //切换搜索条件
// $("#searchkey li").click(function(e){
// var key=$($(this).children("a")[0]).html();
// switch (key){
// case '实训':
// $("#search_type").val('1');
// break;
// case '课堂':
// $("#search_type").val('2');
// break;
// case '用户':
// $("#search_type").val('3');
// break;
// }
// $("#searchkey").siblings(".searchkey").html(key);
// $("#searchkey").hide();
// e.stopPropagation();//阻止冒泡
// });
// //切换选择导航条
// $("#header-nav li").click(function(){
// $("#header-nav li").removeClass("active");
// $(this).addClass("active");
// });
//
//
// $(".search_history").on("click", function(){
// $("input[name='search_keyword']").val($(this).html());
// header_search();
// });
// }
//
// function header_search(reactHeaderComponnet){
// console.log(old_url)
// var keyword = $("input[name='search_keyword']").val(); // 搜索关键字
// window.location.href ="/search"+"?value="+keyword;
// // if (!reactHeaderComponnet) {
// // reactHeaderComponnet = window._header_componentHandler
// // }
// // if (!reactHeaderComponnet) {
// // var index = $("#search_type").val(); // 搜索课程/项目
// // keyword = encodeURIComponent(keyword);
// // // $.get('/users/search_shixuns_or_course',
// // // { search: keyword,
// // // index: index});
// // window.location.href = old_url+"/users/search_shixuns_or_courses" + "?search=" + keyword + "&index=" + index;
// //e.stopPropagation();//阻止冒泡
// // } else {
// // window.__headSearchKeyword = keyword
// // reactHeaderComponnet.props.history.push(`/shixuns`)
// // trigger('searchKeywordChange', keyword)
// // }
// }
// //头部导航条的隐藏
// function closeSearch(){
// $('#posi-search').hide();
// $("#search-open").show();
// // $(".posi-search").animate({opacity:"0"},800);
// $(".HeaderSearch").hide();
// $("#header-nav").animate({opacity:"1"},1000);
// $(".posi-search").css("z-index","2");
// $("#header-nav").css("z-index","3");
// }

@ -188,6 +188,10 @@ class InterestpageComponent extends Component {
if (response !== undefined) {
// this.Jumptotheinterestpage();
// window.location.href = "/"
if(response.data.message!==undefined){
return;
}
this.setMyEduCoderModals()
}
@ -254,15 +258,15 @@ class InterestpageComponent extends Component {
<div className="ysldivhome1" >
<div className="ysldivhomediv" style={{marginLeft:"30px"}} >
<div className="ysldivhomedivtxt" onClick={()=>this.Clickteacher("teacher")}>{gouxuans ==="teacher"? <img src={gouxuan} className="gouxuanimg"/>:<img className="gouxuanimg" src={meigouxuan}/>}老师</div>
<div className="ysldivhomedivimgsy" ><img src={skzbdx} className="ysldivhomedivimg"/></div>
<div className="ysldivhomedivimgsy" ><img onClick={()=>this.Clickteacher("teacher")} src={skzbdx} className="ysldivhomedivimg"/></div>
</div>
<div className="ysldivhomediv" style={{ marginLeft:"101px",marginRight:"101px"}}>
<div className="ysldivhomedivtxt" onClick={()=>this.Clickteacher("student")}>{gouxuans==="student"? <img src={gouxuan} className="gouxuanimg"/>:<img className="gouxuanimg" src={meigouxuan}/>}学生</div>
<div className="ysldivhomedivimgsy"><img src={mytc} className="ysldivhomedivimg"/></div>
<div className="ysldivhomedivimgsy"><img onClick={()=>this.Clickteacher("student")} src={mytc} className="ysldivhomedivimg"/></div>
</div>
<div className="ysldivhomediv" >
<div className="ysldivhomedivtxt" onClick={()=>this.Clickteacher("professional")}>{gouxuans==="professional"?<img src={gouxuan} className="gouxuanimg"/>:<img className="gouxuanimg" src={meigouxuan}/>}专业人士</div>
<div className="ysldivhomedivimgsy"><img src={zyrs1} className="ysldivhomedivimg"/></div>
<div className="ysldivhomedivimgsy"><img onClick={()=>this.Clickteacher("professional")} src={zyrs1} className="ysldivhomedivimg"/></div>
</div>
</div>
<p className="yslspans2">选择你可能感兴趣的内容</p>

@ -189,6 +189,11 @@ class InterestpageMax extends Component {
if (response !== undefined) {
// this.Jumptotheinterestpage();
// window.location.href = "/"
if(response.data.message!==undefined){
return;
}
this.setMyEduCoderModals()
}
@ -255,15 +260,15 @@ class InterestpageMax extends Component {
<div className="ysldivhome12" >
<div className="ysldivhomediv222" style={{marginLeft:"30px"}} >
<div className="ysldivhomedivtxt2" onClick={()=>this.Clickteacher("teacher")}>{gouxuans ==="teacher"? <img src={gouxuan} className="gouxuanimg2"/>:<img className="gouxuanimg2" src={meigouxuan}/>}老师</div>
<div className="ysldivhomedivimg2" ><img src={skzbdx} className="ysldivhomedivimg2"/></div>
<div className="ysldivhomedivimg2" ><img onClick={()=>this.Clickteacher("teacher")} src={skzbdx} className="ysldivhomedivimg2"/></div>
</div>
<div className="ysldivhomediv222" style={{ marginLeft:"101px",marginRight:"101px"}}>
<div className="ysldivhomedivtxt2" onClick={()=>this.Clickteacher("student")}>{gouxuans==="student"? <img src={gouxuan} className="gouxuanimg2"/>:<img className="gouxuanimg2" src={meigouxuan}/>}学生</div>
<div className="ysldivhomedivimg2"><img src={mytc} className="ysldivhomedivimg2"/></div>
<div className="ysldivhomedivimg2"><img onClick={()=>this.Clickteacher("student")} src={mytc} className="ysldivhomedivimg2"/></div>
</div>
<div className="ysldivhomediv222" >
<div className="ysldivhomedivtxt2" onClick={()=>this.Clickteacher("professional")}>{gouxuans==="professional"?<img src={gouxuan} className="gouxuanimg2"/>:<img className="gouxuanimg2" src={meigouxuan}/>}专业人士</div>
<div className="ysldivhomedivimg2"><img src={zyrs1} className="ysldivhomedivimg2"/></div>
<div className="ysldivhomedivimg2"><img onClick={()=>this.Clickteacher("professional")} src={zyrs1} className="ysldivhomedivimg2"/></div>
</div>
</div>
<div><span className="yslspans22">选择你可能感兴趣的内容</span></div>

@ -262,4 +262,7 @@
.bth100{
width: 100px;
margin: 0 auto;
}
.ant-input-affix-wrapper .ant-input-prefix, .ant-input-affix-wrapper .ant-input-suffix {
background: #ffffff!important;
}
Loading…
Cancel
Save