Merge branches 'dev_aliyun' and 'new_shixuns_repository' of https://bdgit.educoder.net/Hjqreturn/educoder into new_shixuns_repository
commit
98b1053056
@ -1,6 +1,10 @@
|
||||
class MainController < ApplicationController
|
||||
skip_before_action :check_sign
|
||||
|
||||
def first_stamp
|
||||
render :json => { status: 0, message: Time.now.to_i }
|
||||
end
|
||||
|
||||
def index
|
||||
render file: 'public/react/build/index.html', :layout => false
|
||||
end
|
||||
|
@ -0,0 +1,9 @@
|
||||
class AddIsShixunMarkerForUsers < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :users, :is_shixun_marker, :boolean, :default => false
|
||||
|
||||
User.joins(:user_extension)
|
||||
.where(users: {professional_certification: 1}, user_extensions: {identity: 0})
|
||||
.update_all(is_shixun_marker: 1)
|
||||
end
|
||||
end
|
After Width: | Height: | Size: 135 KiB |
@ -0,0 +1,61 @@
|
||||
/* 中间居中 */
|
||||
.intermediatecenter{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
/* 简单居中 */
|
||||
.intermediatecenterysls{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.spacearound{
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
||||
}
|
||||
.spacebetween{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
/* 头顶部居中 */
|
||||
.topcenter{
|
||||
display: -webkit-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* x轴正方向排序 */
|
||||
/* 一 二 三 四 五 六 七 八 */
|
||||
.sortinxdirection{
|
||||
display: flex;
|
||||
flex-direction:row;
|
||||
}
|
||||
/* x轴反方向排序 */
|
||||
/* 八 七 六 五 四 三 二 一 */
|
||||
.xaxisreverseorder{
|
||||
display: flex;
|
||||
flex-direction:row-reverse;
|
||||
}
|
||||
/* 垂直布局 正方向*/
|
||||
/* 一
|
||||
二
|
||||
三
|
||||
四
|
||||
五
|
||||
六
|
||||
七
|
||||
八 */
|
||||
.verticallayout{
|
||||
display: flex;
|
||||
flex-direction:column;
|
||||
}
|
||||
/* 垂直布局 反方向*/
|
||||
.reversedirection{
|
||||
display: flex;
|
||||
flex-direction:column-reverse;
|
||||
}
|
||||
|
@ -1,118 +1,119 @@
|
||||
.basicForm {
|
||||
background: #fff;
|
||||
padding: 30px;
|
||||
margin-bottom: 10px;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
min-height: 390px;
|
||||
}
|
||||
.basicForm .title {
|
||||
font-size: 16px;
|
||||
padding-left: 30px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.flexTable {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.flexRow {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.mb15{margin-bottom: 15px!important;}
|
||||
/* BUTTOn */
|
||||
.ant-btn {
|
||||
border-radius: 2px;
|
||||
}
|
||||
button.ant-btn.ant-btn-primary.grayBtn {
|
||||
background: #CBCBCB;
|
||||
border-color: #CBCBCB;
|
||||
}
|
||||
.borderBottom {
|
||||
border-bottom: 1px solid #4CACFF;
|
||||
}
|
||||
|
||||
/* form ---------------- START */
|
||||
.formItemInline {
|
||||
display: flex;
|
||||
}
|
||||
.formItemInline .ant-form-item-control-wrapper {
|
||||
display: inline-block;
|
||||
}
|
||||
.hideRequireTag .ant-form-item-required:before{
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* .basicForm .ant-form-item-label {
|
||||
width: 100px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.basicForm .ant-form-item-label label {
|
||||
color: #979797
|
||||
} */
|
||||
|
||||
|
||||
.courseNormalForm .ant-select-show-search {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-auto-complete.ant-select .ant-input {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-search__field__mirror {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-input-lg {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-selection--single {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-auto-complete.ant-select .ant-select-selection--single {
|
||||
height: 40px
|
||||
}
|
||||
.courseNormalForm .ant-input-affix-wrapper {
|
||||
height: 40px;
|
||||
}
|
||||
/* 职业 */
|
||||
.courseNormalForm .ant-select-selection-selected-value {
|
||||
line-height: 38px
|
||||
}
|
||||
.courseNormalForm input {
|
||||
height: 40px;
|
||||
}
|
||||
.autoModal .ant-modal-body{
|
||||
height: auto;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
@media screen and (max-height: 765px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 670px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 735px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 635px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 500px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 566px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 465px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 472px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 360px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
.basicForm {
|
||||
background: #fff;
|
||||
padding: 30px;
|
||||
margin-bottom: 10px;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
min-height: 390px;
|
||||
}
|
||||
.basicForm .title {
|
||||
font-size: 16px;
|
||||
padding-left: 30px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.flexTable {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.flexRow {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.mb15{margin-bottom: 15px!important;}
|
||||
/* BUTTOn */
|
||||
.ant-btn {
|
||||
border-radius: 2px;
|
||||
}
|
||||
button.ant-btn.ant-btn-primary.grayBtn {
|
||||
background: #CBCBCB;
|
||||
border-color: #CBCBCB;
|
||||
}
|
||||
.borderBottom {
|
||||
border-bottom: 1px solid #4CACFF;
|
||||
}
|
||||
|
||||
/* form ---------------- START */
|
||||
.formItemInline {
|
||||
display: flex;
|
||||
}
|
||||
.formItemInline .ant-form-item-control-wrapper {
|
||||
display: inline-block;
|
||||
}
|
||||
.hideRequireTag .ant-form-item-required:before{
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* .basicForm .ant-form-item-label {
|
||||
width: 100px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.basicForm .ant-form-item-label label {
|
||||
color: #979797
|
||||
} */
|
||||
|
||||
|
||||
.courseNormalForm .ant-select-show-search {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-auto-complete.ant-select .ant-input {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-search__field__mirror {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-input-lg {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-selection--single {
|
||||
height: 40px;
|
||||
}
|
||||
.courseNormalForm .ant-select-auto-complete.ant-select .ant-select-selection--single {
|
||||
height: 40px
|
||||
}
|
||||
.courseNormalForm .ant-input-affix-wrapper {
|
||||
height: 40px;
|
||||
}
|
||||
/* 职业 */
|
||||
.courseNormalForm .ant-select-selection-selected-value {
|
||||
line-height: 38px
|
||||
}
|
||||
.courseNormalForm input {
|
||||
height: 40px;
|
||||
}
|
||||
.autoModal .ant-modal-body{
|
||||
height: auto;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
@media screen and (max-height: 765px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 670px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 735px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 635px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 500px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 566px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 465px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@media screen and (max-height: 472px) {
|
||||
.autoModal .ant-modal-body {
|
||||
height: 360px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,58 +1,86 @@
|
||||
import React, { Component } from 'react';
|
||||
import { SnackbarHOC } from 'educoder';
|
||||
import {BrowserRouter as Router,Route,Switch} from 'react-router-dom';
|
||||
import {Tooltip,Menu,Pagination} from 'antd';
|
||||
import Loadable from 'react-loadable';
|
||||
import Loading from '../../../Loading';
|
||||
import axios from 'axios';
|
||||
import {getImageUrl} from 'educoder';
|
||||
import { TPMIndexHOC } from '../../tpm/TPMIndexHOC';
|
||||
import { CNotificationHOC } from '../../courses/common/CNotificationHOC'
|
||||
import "./usersInfo.css"
|
||||
|
||||
class publicCreateNew extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
}
|
||||
|
||||
//头部获取是否已经登录了
|
||||
getUser=(url)=> {
|
||||
if (this.props.user&&this.props.user.email===undefined||this.props.user&&this.props.user.email===null||this.props.user&&this.props.user.email==="") {
|
||||
this.props.showNotification("请先绑定邮箱,谢谢");
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
if(url !== undefined || url!==""){
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
render() {
|
||||
let {href,name,index}=this.props;
|
||||
return (
|
||||
<div className="square-Item" style={{"height":`${index=="1"?"289":index=="2"?"298":index=="3"?"295":"289"}px`}}>
|
||||
<div className="substance substancepad">
|
||||
{this.props.Createtype==="projects"?<a onClick={()=>this.getUser(href)}>
|
||||
<div className="substancenenew">
|
||||
<div className="leftten"></div>
|
||||
<div className="topten"></div>
|
||||
</div>
|
||||
</a>: <a href={`${href}`}>
|
||||
<div className="substancenenew">
|
||||
<div className="leftten"></div>
|
||||
<div className="topten"></div>
|
||||
</div>
|
||||
</a>}
|
||||
</div>
|
||||
<div className="edu-txt-center course-bottom">
|
||||
<div className="inline color-grey-6">
|
||||
<span className="fl ml10 mr10 squareIconSpan substancefont">
|
||||
{name}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default publicCreateNew;
|
||||
import React, { Component } from 'react';
|
||||
import { SnackbarHOC } from 'educoder';
|
||||
import {BrowserRouter as Router,Route,Switch} from 'react-router-dom';
|
||||
import {Tooltip,Menu,Pagination} from 'antd';
|
||||
import Loadable from 'react-loadable';
|
||||
import Loading from '../../../Loading';
|
||||
import axios from 'axios';
|
||||
import {getImageUrl} from 'educoder';
|
||||
import { TPMIndexHOC } from '../../tpm/TPMIndexHOC';
|
||||
import { CNotificationHOC } from '../../courses/common/CNotificationHOC';
|
||||
import GotoQQgroup from '../../../modal/GotoQQgroup';
|
||||
|
||||
import "./usersInfo.css"
|
||||
|
||||
class publicCreateNew extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
}
|
||||
}
|
||||
|
||||
//头部获取是否已经登录了
|
||||
getUser=(url,name)=> {
|
||||
if (this.props.user&&this.props.user.email===undefined||this.props.user&&this.props.user.email===null||this.props.user&&this.props.user.email==="") {
|
||||
this.props.showNotification("请先绑定邮箱,谢谢");
|
||||
return
|
||||
}
|
||||
if(name==="新建实训"){
|
||||
if(this.props&&this.props.current_user&&this.props.current_user.is_shixun_marker===false){
|
||||
this.props.setgoshowqqgtounp(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(url !== undefined || url!==""){
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
getUsers=(url,name)=> {
|
||||
|
||||
if(name==="新建实训"){
|
||||
if(this.props&&this.props.current_user&&this.props.current_user.is_shixun_marker===false){
|
||||
this.props.setgoshowqqgtounp(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(url !== undefined || url!==""){
|
||||
window.location.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
render() {
|
||||
let {href,name,index}=this.props;
|
||||
|
||||
return (
|
||||
<div className="square-Item" style={{"height":`${index=="1"?"289":index=="2"?"298":index=="3"?"295":"289"}px`}}>
|
||||
|
||||
<div className="substance substancepad">
|
||||
{this.props.Createtype==="projects"?<a onClick={()=>this.getUser(href,name)}>
|
||||
<div className="substancenenew">
|
||||
<div className="leftten"></div>
|
||||
<div className="topten"></div>
|
||||
</div>
|
||||
</a>: <a onClick={()=>this.getUsers(href,name)}>
|
||||
<div className="substancenenew">
|
||||
<div className="leftten"></div>
|
||||
<div className="topten"></div>
|
||||
</div>
|
||||
</a>}
|
||||
</div>
|
||||
<div className="edu-txt-center course-bottom">
|
||||
<div className="inline color-grey-6">
|
||||
<span className="fl ml10 mr10 squareIconSpan substancefont">
|
||||
{name}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default publicCreateNew;
|
||||
|
Loading…
Reference in new issue