Commit eb24988f by guomingpang
parents 89a8dc02 cd5e6544
......@@ -49,6 +49,9 @@ export function getEnterpriseUser(params: object) {
export function getWXWorkLoginNoCheck(params: object) {
return Service.Hades('anon/hades/getWXWorkLoginNoCheck', params);
}
export function getLesseeVersionMsg() {
return Service.Hades("public/customerHades/getLesseeVersionMsg",{enterpriseId:User.getEnterpriseId()})
}
export function getYoZoSign(params: object) {
return Service.Apollo('public/apollo/getYoZoSign', params);
......@@ -59,9 +62,6 @@ export function saveYoZoFileVersionId(params: object) {
export function yoZoUpload(ossUrl:String,appId:String,uploadSign:String){
return axios.post(`https://dmc.yozocloud.cn/api/file/http?fileUrl=${ossUrl}&appId=${appId}&sign=${uploadSign}`)
}
export function getLesseeVersionMsg() {
return Service.Hades("public/customerHades/getLesseeVersionMsg",{enterpriseId:User.getEnterpriseId()})
}
export const getOssClient = (
data: object,
instId: string,
......
......@@ -55,6 +55,10 @@ export default class StoreService {
static getWXWorkLoginNoCheck(params: any){
return getWXWorkLoginNoCheck(params);
}
//获取企业配置的版本信息
static getLesseeVersionMsg() {
return getLesseeVersionMsg();
}
static getYoZoSign(params:any){
return new Promise((resolve) => {
getYoZoSign(params).then(res => {
......@@ -69,8 +73,4 @@ export default class StoreService {
static yoZoUpload(ossUrl:String,appId:String,uploadSign:String){
return yoZoUpload(ossUrl,appId,uploadSign);
}
//获取企业配置的版本信息
static getLesseeVersionMsg() {
return getLesseeVersionMsg();
}
}
\ No newline at end of file
......@@ -53,7 +53,7 @@ class LiveCourseOpt extends React.Component {
{ userRole !== "CloudLecturer" &&
<Button type="primary" onClick={this.handleCreateLiveCouese}>新建直播课</Button>
}
{!this.state.isMac && <Button onClick={this.handleDownloadClient}>下载直播客户端</Button>}
<Button onClick={this.handleDownloadClient}>下载直播客户端</Button>
</div>
</div>
)
......
......@@ -6,6 +6,8 @@ import { Select, Tooltip } from 'antd';
import { Axis, Chart, Coord, Geom, Guide, Tooltip as G2Tooltip } from 'bizcharts';
import moment from 'moment';
import React from 'react';
import HomeTip from './HomeTip';
import './Home.less';
const Option = Select.Option;
......@@ -275,6 +277,7 @@ class Home extends React.Component {
};
return (
<div className='home-page'>
<HomeTip />
<div className='data-wrap'>
<div className='home-title'>数据概况</div>
<div className='data-box'>
......
.training-task{
thead{
display:none;
.training-task {
thead {
display: none;
}
.ant-form-item{
margin-bottom:0 !important;
.ant-form-item {
margin-bottom: 0 !important;
}
.add-task-con{
.add-task-con {
height: 52px;
background: #F7F8F9;
background: #f7f8f9;
border-radius: 2px;
padding:16px;
margin-top:16px;
.add-task-btn-disabled{
color:#CCCCCC;
font-size:14px;
padding: 16px;
margin-top: 16px;
.add-task-btn-disabled {
color: #cccccc;
font-size: 14px;
}
.add-task-btn{
color: #2966FF;
font-size:14px;
.add-task-btn {
color: #2966ff;
font-size: 14px;
}
}
}
.plan-sort-task-item{
.task-con{
display:flex;
padding:16px;
background: #F7F8F9;
.plan-sort-task-item {
.task-con {
display: flex;
padding: 16px;
background: #f7f8f9;
border-radius: 2px;
justify-content: space-between;
align-items: center;
.task-instro{
display:flex;
.task-instro {
display: flex;
align-items: center;
.open-icon{
color:#999999;
font-size:10px;
.open-icon {
color: #999999;
font-size: 10px;
}
.task-name-con{
display:flex;
.task-name-con {
display: flex;
align-items: center;
color:#333333;
font-size:14px;
.number{
margin-right:10px;
margin-left:10px;
color: #333333;
font-size: 14px;
.number {
margin-right: 10px;
margin-left: 10px;
}
.task-name-input{
.task-name-input {
width: 300px;
height: 32px;
background: #FFFFFF;
background: #ffffff;
border-radius: 4px;
}
}
}
.operate{
.operate {
display: none;
.operate__item{
cursor:pointer;
margin-left:16px;
color:#666666;
font-size:14px;
.icon{
font-size:14px;
color:#999;
.operate__item {
cursor: pointer;
margin-left: 16px;
color: #666666;
font-size: 14px;
.icon {
font-size: 14px;
color: #999;
}
.text{
margin-left:8px;
.text {
margin-left: 8px;
}
}
}
&:hover{
.operate{
display:block;
&:hover {
.operate {
display: block;
}
}
}
.course-box{
.add-course-con{
padding:16px 51px;
color: #2966FF;
font-size:14px;
.add-course-btn-disabled{
font-size:14px;
color:#ccc;
.course-box {
.add-course-con {
padding: 16px 51px;
color: #2966ff;
font-size: 14px;
.add-course-btn-disabled {
font-size: 14px;
color: #ccc;
pointer-events: none;
}
}
}
}
.plan-course-sort-item{
display:flex;
padding:16px 16px 16px 0px;
margin-left:51px;
.plan-course-sort-item {
display: flex;
padding: 16px 16px 16px 0px;
margin-left: 51px;
justify-content: space-between;
align-items: center;
border-bottom:1px dotted #E8E8E8;
&:hover{
.course-operate{
display:block;
border-bottom: 1px dotted #e8e8e8;
&:hover {
.course-operate {
display: block;
}
}
.course-operate{
.course-operate {
display: none;
.operate__item{
cursor:pointer;
margin-left:16px;
color:#666666;
font-size:14px;
.icon{
font-size:14px;
color:#999;
.operate__item {
cursor: pointer;
margin-left: 16px;
color: #666666;
font-size: 14px;
.icon {
font-size: 14px;
color: #999;
}
.text{
margin-left:8px;
.text {
margin-left: 8px;
}
}
}
.course-info{
.ant-form{
display:inline-block;
.course-info {
.ant-form {
display: inline-block;
}
.course-name-input{
margin-right:8px;
.course-name-input {
margin-right: 8px;
}
.course-type{
font-size:11px;
color:#666666;
padding:0px 6px;
.course-type {
font-size: 11px;
color: #666666;
padding: 0px 6px;
border: 1px solid #999999;
margin-right:4px;
margin-right: 4px;
border-radius: 2px;
line-height: 16px;
}
.course-name{
color:#666666;
font-size:14px;
margin-right:8px;
.course-name {
color: #666666;
font-size: 14px;
margin-right: 8px;
}
.tip{
font-size:14px;
color:#FF4F4F;
margin-right:2px;
.tip {
font-size: 14px;
color: #ff4f4f;
margin-right: 2px;
}
.course-state{
color:#999;
font-size:14px;
.course-state {
color: #999;
font-size: 14px;
}
}
}
......@@ -494,7 +494,7 @@ class SelectOperatorModal extends React.Component {
} else {
_list = _.reject(selectLive, (item) => item.liveCourseId === record.liveCourseId);
}
if (_list.length + currentTaskCourseData.length + selectVideo.length + selectPicture.length > 20) {
if (_list.length + currentTaskCourseData.length + selectVideo.internal.length + selectVideo.external.length + selectPicture.length > 20) {
message.warning('无法继续选择,一个任务最多关联20个课程');
return;
}
......@@ -505,14 +505,14 @@ class SelectOperatorModal extends React.Component {
const { selectVideo, currentTaskCourseData, selectLive, selectPicture, videoCourseDivision } = this.state;
let { [videoCourseDivision]: selectList } = selectVideo;
let otherVideoCourseDivision = videoCourseDivision === 'internal' ? 'external' : 'internal';
let _list = [];
if (selected || !_.find(selectList, (item) => item.id === record.id)) {
_list = _.uniq(selectList.concat([record]), false, (item) => item.id);
} else {
_list = _.reject(selectList, (item) => item.id === record.id);
}
if (_list.length + currentTaskCourseData.length + selectLive.length + selectPicture.length > 20) {
if (_list.length + selectVideo[otherVideoCourseDivision]?.length + currentTaskCourseData.length + selectLive.length + selectPicture.length > 20) {
message.warning('无法继续选择,一个任务最多关联20个课程');
return;
}
......@@ -532,7 +532,7 @@ class SelectOperatorModal extends React.Component {
} else {
_list = _.reject(selectPicture, (item) => item.id === record.id);
}
if (_list.length + currentTaskCourseData.length + selectLive.length + selectVideo.length > 20) {
if (_list.length + currentTaskCourseData.length + selectLive.length + selectVideo.internal.length + selectVideo.external.length > 20) {
message.warning('无法继续选择,一个任务最多关联20个课程');
return;
}
......@@ -757,9 +757,10 @@ class SelectOperatorModal extends React.Component {
} else {
_list = _.reject(selectLive, (item) => _.find(changeRows, (data) => data.liveCourseId === item.liveCourseId));
}
if (_list.length + currentTaskCourseData.length + selectVideo.length + selectPicture.length > 20) {
if (_list.length + currentTaskCourseData.length + selectVideo.internal.length + selectVideo.external.length + selectPicture.length > 20) {
message.warning('无法继续选择,一个任务最多关联20个课程');
const extraLength = _list.length + currentTaskCourseData.length + selectVideo.length + selectPicture.length - 20;
const extraLength =
_list.length + currentTaskCourseData.length + selectVideo.internal.length + selectVideo.external.length + +selectPicture.length - 20;
_list.splice(_list.length - extraLength, extraLength);
}
this.setState({ selectLive: _list });
......@@ -847,14 +848,24 @@ class SelectOperatorModal extends React.Component {
},
onSelectAll: (selected, _selectedRows, changeRows) => {
let _list = [];
let otherVideoCourseDivision = videoCourseDivision === 'internal' ? 'external' : 'internal';
if (selected) {
_list = _.uniq(selectVideo[videoCourseDivision].concat(changeRows), false, (item) => item.id);
} else {
_list = _.reject(selectVideo[videoCourseDivision], (item) => _.find(changeRows, (data) => data.id === item.id));
}
if (_list.length + currentTaskCourseData.length + selectLive.length + selectPicture.length > 20) {
if (
_list.length + selectVideo[otherVideoCourseDivision]?.length + currentTaskCourseData.length + selectLive.length + selectPicture.length >
20
) {
message.warning('无法继续选择,一个任务最多关联20个课程');
const extraLength = _list.length + currentTaskCourseData.length + selectLive.length + selectPicture.length - 20;
const extraLength =
_list.length +
selectVideo[otherVideoCourseDivision]?.length +
currentTaskCourseData.length +
selectLive.length +
selectPicture.length -
20;
_list.splice(_list.length - extraLength, extraLength);
}
this.setState({
......@@ -951,9 +962,10 @@ class SelectOperatorModal extends React.Component {
} else {
_list = _.reject(selectPicture, (item) => _.find(changeRows, (data) => data.id === item.id));
}
if (_list.length + currentTaskCourseData.length + selectVideo.length + selectLive.length > 20) {
if (_list.length + currentTaskCourseData.length + selectVideo.internal.length + selectVideo.external.length + selectLive.length > 20) {
message.warning('无法继续选择,一个任务最多关联20个课程');
const extraLength = _list.length + currentTaskCourseData.length + selectVideo.length + selectLive.length - 20;
const extraLength =
_list.length + currentTaskCourseData.length + selectVideo.internal.length + selectVideo.external.length + selectLive.length - 20;
_list.splice(_list.length - extraLength, extraLength);
}
this.setState({ selectPicture: _list });
......
/*
* @Author: 吴文洁
* @Date: 2019-09-10 18:26:03
* @LastEditors: fusanqiasng
* @LastEditTime: 2021-06-25 14:33:49
* @LastEditors: yuananting
* @LastEditTime: 2021-07-06 14:49:12
* @Description:
*/
import React, { useRef, useContext, useEffect, useState } from 'react';
......@@ -320,10 +320,10 @@ function Header(props) {
</div>
)}
<div className='right-box'>
<div className='link-to-store'>
<div className='right-bg-img'>
<img src='https://image.xiaomaiketang.com/xm/WCwjyyXYda.png'></img>
</div>
<div className='link-to-store'>
<div className='link'>
<span className='link-btn'>
<span className='icon iconfont tool-tip-right'>&#xe85d;</span>
......
......@@ -310,13 +310,9 @@
display: flex;
align-items: center;
}
.right-bg-img {
img {
width: 277px;
height: 60px;
}
}
.link-to-store {
position: relative;
display: flex;
height: 49px;
line-height: 49px;
......@@ -329,6 +325,14 @@
.iconfont {
color: #fff;
}
.right-bg-img {
position: absolute;
right: 347px;
img {
width: 277px;
height: 60px;
}
}
.link {
cursor: pointer;
position: relative;
......@@ -346,7 +350,7 @@
width: 216px;
height: 260px;
top: 49px;
left: 0;
left: -50px;
background-color: #fff;
flex-wrap: wrap;
box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
......
import User from '@/common/js/user';
import ContactWidget from '@/components/ContactWidget';
import React, { Key, useContext, useEffect, useRef, useState, useMemo } from 'react';
import {
withRouter,
} from 'react-router-dom';
import { Menu, Popover, Tooltip } from 'antd';
import { RightOutlined } from '@ant-design/icons';
import { menuList } from '../../routes//config/menuList';
import { XMContext, VersionContext } from '../../store/context';
import BaseService from '@/domains/basic-domain/baseService';
import StoreService from '@/domains/store-domain/storeService';
import { Menu, Tooltip } from 'antd';
import classNames from 'classnames';
import React, { Key, useContext, useEffect, useMemo, useState } from 'react';
import { withRouter } from 'react-router-dom';
import User from "@/common/js/user"
import _ from 'underscore';
import { menuList } from '../../routes//config/menuList';
import { VersionContext, XMContext } from '../../store/context';
import './Menu.less';
import "./Menu.less";
import { display } from 'html2canvas/dist/types/css/property-descriptors/display';
import ContactWidget from '@/components/ContactWidget';
const { SubMenu } = Menu;
......
......@@ -2,33 +2,33 @@
.select-box {
display: flex;
align-items: center;
.select-container{
.select-container {
margin-right: 24px;
.con{
background: #E9EFFF;
.con {
background: #e9efff;
border-radius: 4px;
padding: 3px 16px;
display: inline-flex;
align-items: center;
justify-content: space-between;
.tip{
font-size:14px;
color:#2966FF;
margin-right:8px;
.tip {
font-size: 14px;
color: #2966ff;
margin-right: 8px;
}
.text{
font-size:14px;
color:#666;
margin-right:30px;
.text {
font-size: 14px;
color: #666;
margin-right: 30px;
}
.clear{
color:#5289FA;
font-size:14px;
.clear {
color: #5289fa;
font-size: 14px;
}
}
}
}
.ant-radio-wrapper{
.ant-radio-wrapper {
left: -10px;
}
.paper-list-filter {
......@@ -75,8 +75,10 @@
.paper-list-content {
position: relative;
margin-top: 12px;
height: calc(100vh - 260px);
overflow: scroll;
.empty-list-tip {
color: #2966FF;
color: #2966ff;
cursor: pointer;
}
.record-name {
......@@ -88,7 +90,7 @@
display: flex;
&__item {
color: #2966FF;
color: #2966ff;
cursor: pointer;
&.split {
......@@ -98,7 +100,7 @@
}
}
}
&.modal-select{
&.modal-select {
.search-condition {
width: calc(100% - 80px);
display: flex;
......
......@@ -7,7 +7,10 @@
.content {
width: 100%;
margin-left: 24px;
height: calc(100vh - 160px);
.question-list-content {
height: calc(100vh - 260px);
overflow: scroll;
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment