Commit e8c34a03 by guomingpang
parents df66580a 4071b9b2
#ignore obj and lib file
dist
rev
node_modules
coverage
*/vendor.js
*/vendor.*.*
*/vendor-manifest.json
coverage
npm-shrinkwrap.json
### OSX template
.DS_Store .DS_Store
node_modules/ .AppleDouble
dist/ .LSOverride
npm-debug.log yarn.lock
\ No newline at end of file yarn-error.lock
# IntelliJ project files
.idea
*.iml
out
gen
### Sass template
.sass-cache/
*.css.map
### Vim template
# swap
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
# session
Session.vim
# temporary
.netrwhist
*~
# auto-generated tag files
tags
### SublimeText template
# cache files for sublime text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
# workspace files are user-specific
*.sublime-workspace
# project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using SublimeText
# *.sublime-project
# sftp configuration file
sftp-config.json
npm-debug.log
*.zip
build/vendor.js.map
package-lock.json
.vscode/*
demo.js
debug.log
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
"case-sensitive-paths-webpack-plugin": "2.3.0", "case-sensitive-paths-webpack-plugin": "2.3.0",
"classnames": "^2.2.6", "classnames": "^2.2.6",
"cropper": "^3.1.4", "cropper": "^3.1.4",
"cross-env": "^7.0.2", "cross-env": "^7.0.3",
"css-loader": "3.4.2", "css-loader": "3.4.2",
"dom-to-image": "^2.6.0", "dom-to-image": "^2.6.0",
"dotenv": "8.2.0", "dotenv": "8.2.0",
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
.span-left{ .span-left{
margin-left: 10px; margin-left: 10px;
.span-left-l{ .span-left-l{
color: #ffb714; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
} }
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
margin-right: 10px; margin-right: 10px;
color: #999; color: #999;
.span-right-l{ .span-right-l{
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
} }
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
margin-bottom: 10px; margin-bottom: 10px;
} }
.bread:hover{ .bread:hover{
color: #5289FA; color: #2966FF;
} }
} }
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
.managing-right{ .managing-right{
float: right; float: right;
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
.tool-tip-right{ .tool-tip-right{
margin-right: 4px; margin-right: 4px;
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
&:not(:last-child) { &:not(:last-child) {
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: #5289FA; color: #2966FF;
} }
&::before { &::before {
content: '/'; content: '/';
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
} }
.footer__left { .footer__left {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
} }
......
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
margin-top: 40px; margin-top: 40px;
.content { .content {
color: #FF7519; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
} }
......
.xm-show-tip { .xm-show-tip {
position: relative; position: relative;
min-height:32px; min-height:32px;
background:#FFF4DD; background:#E9EFFF;
border-radius:4px; border-radius:4px;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
padding: 0 12px; padding: 0 12px;
line-height: 32px; line-height: 32px;
span.icon { span.icon {
color:#FF9D14; color:#2966FF;
line-height: 20px; line-height: 20px;
} }
p { p {
......
...@@ -316,7 +316,7 @@ class UploadProgressModal extends React.Component { ...@@ -316,7 +316,7 @@ class UploadProgressModal extends React.Component {
return ( return (
<div <div
className="file-item" className={`file-item ${file.status === 'fail' ? 'fail':''}`}
key={`file-item${index}`} key={`file-item${index}`}
> >
......
...@@ -54,6 +54,9 @@ ...@@ -54,6 +54,9 @@
line-height: 50px; line-height: 50px;
padding: 0 24px; padding: 0 24px;
position: relative; position: relative;
&.fail {
background-color: rgba(255, 79, 79, 0.06);
}
&:not(:last-child) { &:not(:last-child) {
margin-bottom: 4px; margin-bottom: 4px;
......
/* /*
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-31 09:34:31 * @Date: 2020-08-31 09:34:31
* @LastEditors: zhangleyuan * @LastEditors: wufan
* @LastEditTime: 2021-04-27 16:59:07 * @LastEditTime: 2021-05-27 10:42:12
* @Description: * @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
*/ */
import qs from 'qs';
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosPromise, AxiosError } from 'axios'; import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosPromise, AxiosError } from 'axios';
import { message } from 'antd'; import { message } from 'antd';
......
@import '../core/variables.less'; @import "../core/variables.less";
.xm-breadCrumb{ .xm-breadCrumb{
margin-left: 16px; padding-left: 16px;
color: #989898; color: #989898;
margin-top:10px; padding-top: 16px;
margin-bottom: 10px; padding-bottom: 8px;
background: #fff;
width: calc(100vw - 218px);
+.statistic-tips{ +.statistic-tips{
position: relative; position: relative;
top: -8px; top: -8px;
...@@ -20,26 +22,25 @@ ...@@ -20,26 +22,25 @@
font-size: @xm-font-size-m; font-size: @xm-font-size-m;
line-height: 25px; line-height: 25px;
} }
.ant-breadcrumb{ .ant-breadcrumb {
display: inline-block; display: inline-block;
span{ span {
color: #333; color: #333;
font-weight: 400; font-weight: 400;
} }
} }
.divide{ .divide {
display: inline-block; display: inline-block;
position: relative; position: relative;
height: 12px; height: 12px;
width: 25px; width: 25px;
&:after{ &:after {
content:''; content: "";
position: absolute; position: absolute;
left: 12px; left: 12px;
height: 16px; height: 16px;
top: 0px; top: 0px;
border-left:1px solid #989898; border-left: 1px solid #989898;
} }
} }
}
}
\ No newline at end of file
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
color: #666; color: #666;
} }
.nc_iconfont { .nc_iconfont {
color: #FFB714; color: #2966FF;
font-weight: bold; font-weight: bold;
border-color: #e8e8e8; border-color: #e8e8e8;
height: 40px; height: 40px;
...@@ -26,11 +26,12 @@ ...@@ -26,11 +26,12 @@
box-sizing: border-box; box-sizing: border-box;
} }
.nc_scale .nc_ok, .nc_scale .nc_bg { .nc_scale .nc_ok, .nc_scale .nc_bg {
background: #FFB714; background: #2966FF;
border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px;
opacity: 0.3;
} }
.nc_scale .btn_ok { .nc_scale .btn_ok {
color: #FFB714; color: #2966FF;
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
box-sizing: border-box; box-sizing: border-box;
...@@ -42,7 +43,7 @@ ...@@ -42,7 +43,7 @@
.nc-lang-cnt { .nc-lang-cnt {
color: #666; color: #666;
a { a {
color: #FFB714; color: #2966FF;
} }
} }
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
.multiple-calendar { .multiple-calendar {
width: 295px; width: 295px;
border: 1px solid #e8e8e8; border: 1px solid #e8e8e8;
border-radius: 4px; border-radius: 2px;
ul { ul {
list-style: none; list-style: none;
} }
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
cursor: default; cursor: default;
&:hover { &:hover {
background: #FFFFFF; background: #FFFFFF;
border-radius: 4px; border-radius: 2px;
} }
} }
.self { .self {
...@@ -55,8 +55,8 @@ ...@@ -55,8 +55,8 @@
cursor: pointer; cursor: pointer;
vertical-align: top; vertical-align: top;
&:hover { &:hover {
background: rgba(255, 183, 20,.2); background: rgba(41, 102, 255, .1);
border-radius:4px; border-radius:2px;
} }
&.before-disabled { &.before-disabled {
color: #e8e8e8; color: #e8e8e8;
...@@ -81,11 +81,11 @@ ...@@ -81,11 +81,11 @@
&.active { &.active {
background: @xm-color-primary; background: @xm-color-primary;
color: #fff; color: #fff;
border-radius: 4px; border-radius: 2px;
} }
&.today { &.today {
border: 1px solid @xm-color-primary; border: 1px solid @xm-color-primary;
border-radius: 5px; border-radius: 2px;
} }
} }
} }
...@@ -151,7 +151,7 @@ ...@@ -151,7 +151,7 @@
border-radius: none; border-radius: none;
span { span {
background: @xm-color-primary; background: @xm-color-primary;
border-radius: 4px; border-radius: 2px;
} }
&:hover { &:hover {
span { span {
...@@ -164,13 +164,13 @@ ...@@ -164,13 +164,13 @@
border-radius: none; border-radius: none;
span { span {
border: 1px solid @xm-color-primary; border: 1px solid @xm-color-primary;
border-radius: 5px; border-radius: 2px;
} }
} }
&.past { &.past {
span { span {
background:rgba(255,133,52,0.1); background:rgba(255,133,52,0.1);
border-radius: 4px; border-radius: 2px;
color:rgba(0,0,0,0.25); color:rgba(0,0,0,0.25);
} }
} }
......
.xm-show-tip { .xm-show-tip {
position: relative; position: relative;
min-height:32px; min-height:32px;
background:#FFF4DD; background:#E9EFFF;
border-radius:4px; border-radius:4px;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
padding: 0 12px; padding: 0 12px;
line-height: 32px; line-height: 32px;
.icon { .icon {
color:#FF9D14; color:#2966FF;
font-size:14px; font-size:14px;
} }
p { p {
......
/* /*
* @Description: * @Description:
* @Author: zangsuyun * @Author: zangsuyun
* @Date: 2021-03-13 10:57:14 * @Date: 2021-03-13 10:57:14
* @LastEditors: zangsuyun * @LastEditors: fusanqiasng
* @LastEditTime: 2021-03-13 17:16:44 * @LastEditTime: 2021-05-24 22:10:50
* @Copyright: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyright: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import PropTypes from 'prop-types'; import PropTypes from 'prop-types'
import React from 'react' import React from 'react'
// import { Modal } from 'antd'; // import { Modal } from 'antd';
import './TableSelectedData.less'; import './TableSelectedData.less'
class TableSelectedData extends React.Component { class TableSelectedData extends React.Component {
constructor(props) {
super(props);
}
render() { render() {
return ( return (
<div className={this.props.className+' selected-data-box'}> <div className={this.props.className + ' selected-data-box'}>
<span className="icon iconfont">&#xe61d;</span> <span className='icon iconfont'>&#xe61d;</span>
<span className="selected-text">{'已选择'+this.props.selectedNum+'项'}</span> <span className='selected-text'>{'已选择' + this.props.selectedNum + '项'}</span>
<span className="click-clear" onClick={this.props.clearSelectedData}>清空</span> <span className='click-clear' onClick={this.props.clearSelectedData}>
清空
</span>
</div> </div>
) )
} }
} }
TableSelectedData.propTypes = { TableSelectedData.propTypes = {
className: PropTypes.string, // class className: PropTypes.string, // class
selectedNum: PropTypes.number, // 已选择人数 selectedNum: PropTypes.number, // 已选择人数
clearSelectedData: PropTypes.func, // 取消全部选择 clearSelectedData: PropTypes.func // 取消全部选择
}; }
TableSelectedData.defaultProps = { TableSelectedData.defaultProps = {
className: '', className: '',
selectedNum: 0, selectedNum: 0,
clearSelectedData: function () { clearSelectedData: function () {}
}
} }
export default TableSelectedData export default TableSelectedData
\ No newline at end of file
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
min-width: 186px; min-width: 186px;
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
background: #FFF4DD; background: #E9EFFF;
padding: 0px 16px; padding: 0px 16px;
border-radius:4px; border-radius:4px;
margin: 16px 10px 13px 0; margin: 16px 10px 13px 0;
.iconfont { .iconfont {
color: #FF9D14; color: #2966FF;
} }
.selected-text { .selected-text {
margin-left: 10px; margin-left: 10px;
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
.click-clear { .click-clear {
float: right; float: right;
cursor: pointer; cursor: pointer;
color: #5289FA; color: #2966FF;
&:hover { &:hover {
color: rgba(85, 168, 253, 0.8); color: rgba(85, 168, 253, 0.8);
} }
......
...@@ -1602,7 +1602,7 @@ input:focus { ...@@ -1602,7 +1602,7 @@ input:focus {
font-size: 22px !important; font-size: 22px !important;
line-height: 22px !important; line-height: 22px !important;
float: left !important; float: left !important;
color: #FFB714 !important; color: #2966FF !important;
margin-right: 16px !important; margin-right: 16px !important;
} }
...@@ -1678,11 +1678,11 @@ input:focus { ...@@ -1678,11 +1678,11 @@ input:focus {
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
.operate-text { .operate-text {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.operate__item { .operate__item {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
margin: 0 8px; margin: 0 8px;
...@@ -1690,7 +1690,7 @@ input:focus { ...@@ -1690,7 +1690,7 @@ input:focus {
} }
} }
.more{ .more{
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
cursor: pointer; cursor: pointer;
} }
......
...@@ -7,25 +7,24 @@ ...@@ -7,25 +7,24 @@
left: 0px; left: 0px;
right: 0; right: 0;
bottom: 0; bottom: 0;
z-index: 101; z-index:3;
background-color: #F0F2F5; background-color: #fff;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
min-height: 100%;
.page { .page {
position: fixed; position: fixed;
top: 50px; top: 60px;
left: 180px; left: 180px;
right: 0; right: 0;
bottom: 0; bottom: 0;
z-index: 102; z-index: 102;
overflow: auto; overflow: auto;
margin:0 16px;
.box{ .box{
&:first-child{ &:first-child{
margin-bottom: 8px; margin-bottom: 8px;
} }
&+.box{
margin: 8px 16px;
}
&:last-child{ &:last-child{
margin-bottom: 16px; margin-bottom: 16px;
} }
...@@ -42,38 +41,38 @@ ...@@ -42,38 +41,38 @@
animation: all 0.75; animation: all 0.75;
padding-bottom: 16px; padding-bottom: 16px;
} }
.content-sub-header{ .content-sub-header {
padding: 0px 16px 0; padding: 0px 16px 0;
line-height: 30px; line-height: 30px;
} }
.content-header { .content-header {
padding: 10px 16px; padding: 16px 16px 8px 16px;
line-height: 30px; line-height: 30px;
font-size:24px;
color:#333;
font-weight:bold;
background: #FFF;
h1 { h1 {
font-size: 14px;
color: #898989;
font-weight: normal; font-weight: normal;
display: inline-block; display: inline-block;
} }
} }
.box{ .box {
padding: 16px; padding: 16px;
margin: 0 16px 16px;
margin-bottom: 8px;
background: #ffffff; background: #ffffff;
// min-height: 400px; // min-height: calc(100vh - 126px);
.box-header { .box-header {
line-height: 30px; line-height: 30px;
padding-bottom: 12px; padding-bottom: 12px;
&.searchOnly{ &.searchOnly {
padding-bottom: 0px; padding-bottom: 0px;
} }
.filter-row { .filter-row {
min-height: 30px; min-height: 30px;
margin-bottom: 10px; margin-bottom: 10px;
>* { > * {
float: left; float: left;
margin-left: 16px; margin-left: 16px;
height: 40px; height: 40px;
...@@ -89,45 +88,31 @@ ...@@ -89,45 +88,31 @@
.box-footer { .box-footer {
margin-top: 16px; margin-top: 16px;
} }
&:first-child{
margin-bottom: 8px;
}
&+.box{
margin: 8px 16px;
}
&:last-child{
margin-bottom: 13px;
}
} }
// .ant-calendar-picker{
// top:-1px;
// }
} }
.box-header { .box-header {
.ant-row-flex { .ant-row-flex {
padding-top: 2px; padding-top: 2px;
>div:nth-child(1) { > div:nth-child(1) {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
align-items:space-between; align-items: space-between;
.flex(1); .flex(1);
>*{ > * {
flex-basis: 30%; flex-basis: 30%;
margin-right: 3%; margin-right: 3%;
margin-bottom: 16px; margin-bottom: 16px;
} }
} }
&.lastRow{ &.lastRow {
>div:nth-child(1) { > div:nth-child(1) {
>*{ > * {
margin-bottom: 0px; margin-bottom: 0px;
} }
} }
} }
} }
} }
.full-screen-page { .full-screen-page {
...@@ -139,5 +124,5 @@ ...@@ -139,5 +124,5 @@
bottom: 0; bottom: 0;
right: 0; right: 0;
user-select: none; user-select: none;
background-color: #F0F2F5; background-color: #f0f2f5;
} }
@sunLight: #FED951; @sunLight: #FED951;
@sun: #FFB714; @sun: #2966FF;
@sunDark: #FFB714; @sunDark: #2966FF;
@orangeLight: #FDBB70; @orangeLight: #FDBB70;
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
//old //old
//color //color
@xm-color-primary:#FFB714; @xm-color-primary:#2966FF;
@xm-color-primary_active: #020201; @xm-color-primary_active: #020201;
@xm-color-primary-darker: #ff8534; @xm-color-primary-darker: #ff8534;
@xm-color-selected: #F58E2C; @xm-color-selected: #F58E2C;
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
@xm-color-secondary-light: #e28534; @xm-color-secondary-light: #e28534;
@xm-color-secondary: #ff8534; @xm-color-secondary: #ff8534;
@xm-color-secondary-darker: #D65E30; @xm-color-secondary-darker: #D65E30;
@xm-color-text-select-primary:#FFB714; @xm-color-text-select-primary:#2966FF;
@xm-color-text-select-warning:#ec4b35; @xm-color-text-select-warning:#ec4b35;
@xm-color-info: #45b2ff; @xm-color-info: #45b2ff;
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
@xm-table-tbody-color:#666; @xm-table-tbody-color:#666;
//侧边栏宽度 //侧边栏宽度
@xm-left-width:180px; @xm-left-width:180px;
@xm-left-min-width:64px; @xm-left-min-width:56px;
@xm-color-text-menu:#9a9dA7; @xm-color-text-menu:#9a9dA7;
// 下拉框 // 下拉框
......
/* /*
* @Author: yuananting * @Author: yuananting
* @Date: 2021-03-03 15:13:12 * @Date: 2021-03-03 15:13:12
* @LastEditors: yuananting * @LastEditors: fusanqiasng
* @LastEditTime: 2021-04-13 13:58:40 * @LastEditTime: 2021-05-25 10:07:03
* @Description: 助学工具接口 * @Description: 助学工具接口
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import Service from "@/common/js/service"; import Service from '@/common/js/service'
export function queryExternalCategoryTree(params: object) {
return Service.Hades('public/externalHades/queryCategoryTree', params)
}
export function queryCategoryTree(params: object) { export function queryCategoryTree(params: object) {
return Service.Hades("public/hades/queryCategoryTree", params); return Service.Hades('public/hades/queryCategoryTree', params)
} }
export function addCategory(params: object) { export function addCategory(params: object) {
return Service.Hades("public/hades/addCategory", params); return Service.Hades('public/hades/addCategory', params)
} }
export function delCategory(params: object) { export function delCategory(params: object) {
return Service.Hades("public/hades/delCategory", params); return Service.Hades('public/hades/delCategory', params)
} }
export function editCategory(params: object) { export function editCategory(params: object) {
return Service.Hades("public/hades/editCategory", params); return Service.Hades('public/hades/editCategory', params)
} }
export function editCategoryTree(params: object) { export function editCategoryTree(params: object) {
return Service.Hades("public/hades/editCategoryTree", params); return Service.Hades('public/hades/editCategoryTree', params)
} }
export function queryQuestionPageList(params: object) { export function queryQuestionPageList(params: object) {
return Service.Hades("public/hades/queryQuestionPageList", params); return Service.Hades('public/hades/queryQuestionPageList', params)
} }
export function addQuestion(params: object) { export function addQuestion(params: object) {
return Service.Hades("public/hades/addQuestion", params); return Service.Hades('public/hades/addQuestion', params)
} }
export function deleteQuestion(params: object) { export function deleteQuestion(params: object) {
return Service.Hades("public/hades/deleteQuestion", params); return Service.Hades('public/hades/deleteQuestion', params)
} }
export function queryQuestionDetails(params: object) { export function queryQuestionDetails(params: object) {
return Service.Hades("public/hades/queryQuestionDetails", params); return Service.Hades('public/hades/queryQuestionDetails', params)
} }
export function editQuestion(params: object) { export function editQuestion(params: object) {
return Service.Hades("public/hades/editQuestion", params); return Service.Hades('public/hades/editQuestion', params)
} }
export function batchImport(params: object) { export function batchImport(params: object) {
return Service.Hades("public/hades/batchImport", params); return Service.Hades('public/hades/batchImport', params)
} }
export function createPaper(params: object) { export function createPaper(params: object) {
return Service.Hades("public/hades/createPaper", params); return Service.Hades('public/hades/createPaper', params)
} }
export function queryPaperPageList(params: object) { export function queryPaperPageList(params: object) {
return Service.Hades("public/hades/queryPaperPageList", params); return Service.Hades('public/hades/queryPaperPageList', params)
} }
export function deletePaper(params: object) { export function deletePaper(params: object) {
return Service.Hades("public/hades/deletePaper", params); return Service.Hades('public/hades/deletePaper', params)
} }
export function queryPaperDetail(params: object) { export function queryPaperDetail(params: object) {
return Service.Hades("public/hades/queryPaperDetail", params); return Service.Hades('public/hades/queryPaperDetail', params)
} }
export function viewPaper(params: object) { export function viewPaper(params: object) {
return Service.Hades("public/hades/viewPaper", params); return Service.Hades('public/hades/viewPaper', params)
} }
export function editPaper(params: object) { export function editPaper(params: object) {
return Service.Hades("public/hades/editPaper", params); return Service.Hades('public/hades/editPaper', params)
} }
export function batchQueryQuestionDetails(params: object) { export function batchQueryQuestionDetails(params: object) {
return Service.Hades("public/hades/batchQueryQuestionDetails", params); return Service.Hades('public/hades/batchQueryQuestionDetails', params)
} }
export function queryQuestionPageListWithContent(params: object) { export function queryQuestionPageListWithContent(params: object) {
return Service.Hades("public/hades/queryQuestionPageListWithContent", params); return Service.Hades('public/hades/queryQuestionPageListWithContent', params)
} }
\ No newline at end of file
/* /*
* @Author: yuananting * @Author: yuananting
* @Date: 2021-03-11 11:34:37 * @Date: 2021-03-11 11:34:37
* @LastEditors: yuananting * @LastEditors: fusanqiasng
* @LastEditTime: 2021-04-13 13:58:11 * @LastEditTime: 2021-05-24 23:44:39
* @Description: 助学工具接口 * @Description: 助学工具接口
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import { import {
queryCategoryTree, queryExternalCategoryTree,
addCategory, queryCategoryTree,
delCategory, addCategory,
editCategory, delCategory,
editCategoryTree, editCategory,
addQuestion, editCategoryTree,
queryQuestionPageList, addQuestion,
deleteQuestion, queryQuestionPageList,
queryQuestionDetails, deleteQuestion,
editQuestion, queryQuestionDetails,
batchImport, editQuestion,
createPaper, batchImport,
queryPaperPageList, createPaper,
deletePaper, queryPaperPageList,
queryPaperDetail, deletePaper,
viewPaper, queryPaperDetail,
viewPaper,
editPaper, editPaper,
batchQueryQuestionDetails, batchQueryQuestionDetails,
queryQuestionPageListWithContent, queryQuestionPageListWithContent
} from '@/data-source/aidTool/request-apis'; } from '@/data-source/aidTool/request-apis'
export default class AidToolService { export default class AidToolService {
// 获取题目分类树 /**
* 查询运营端分类书
* @param parmas
* @returns
*/
static queryExternalCategoryTree(parmas: any) {
return queryExternalCategoryTree(parmas)
}
// 获取题目分类树
static queryCategoryTree(params: any) { static queryCategoryTree(params: any) {
return queryCategoryTree(params); return queryCategoryTree(params)
} }
// 新增题目分类 // 新增题目分类
static addCategory(params: any) { static addCategory(params: any) {
return addCategory(params); return addCategory(params)
} }
// 删除分类 // 删除分类
static delCategory(params: any) { static delCategory(params: any) {
return delCategory(params); return delCategory(params)
} }
// 编辑分类 // 编辑分类
static editCategory(params: any) { static editCategory(params: any) {
return editCategory(params); return editCategory(params)
} }
// 编辑分类树(拖拽) // 编辑分类树(拖拽)
static editCategoryTree(params: any) { static editCategoryTree(params: any) {
return editCategoryTree(params); return editCategoryTree(params)
} }
// 查询题目列表 // 查询题目列表
static queryQuestionPageList(params: any) { static queryQuestionPageList(params: any) {
return queryQuestionPageList(params); return queryQuestionPageList(params)
} }
// 添加题目 // 添加题目
static addQuestion(params: any) { static addQuestion(params: any) {
return addQuestion(params); return addQuestion(params)
} }
// 删除题目 // 删除题目
static deleteQuestion(params: any) { static deleteQuestion(params: any) {
return deleteQuestion(params); return deleteQuestion(params)
} }
// 预览题目 // 预览题目
static queryQuestionDetails(params: any) { static queryQuestionDetails(params: any) {
return queryQuestionDetails(params); return queryQuestionDetails(params)
} }
// 编辑题目 // 编辑题目
static editQuestion(params: any) { static editQuestion(params: any) {
return editQuestion(params); return editQuestion(params)
} }
// 批量导入 // 批量导入
static batchImport(params: any) { static batchImport(params: any) {
return batchImport(params); return batchImport(params)
} }
// 创建试卷 // 创建试卷
static createPaper(params: any) { static createPaper(params: any) {
return createPaper(params); return createPaper(params)
} }
// 查询试卷列表 // 查询试卷列表
static queryPaperPageList(params: any) { static queryPaperPageList(params: any) {
return queryPaperPageList(params); return queryPaperPageList(params)
} }
// 删除试卷 // 删除试卷
static deletePaper(params: any) { static deletePaper(params: any) {
return deletePaper(params); return deletePaper(params)
} }
// 编辑前查询试卷信息 // 编辑前查询试卷信息
static queryPaperDetail(params: any) { static queryPaperDetail(params: any) {
return queryPaperDetail(params); return queryPaperDetail(params)
} }
// 预览试卷 // 预览试卷
static viewPaper(params: any) { static viewPaper(params: any) {
return viewPaper(params); return viewPaper(params)
} }
// 编辑试卷 // 编辑试卷
static editPaper(params: any) { static editPaper(params: any) {
return editPaper(params); return editPaper(params)
} }
// 操作试卷-预览查询多题目信息 // 操作试卷-预览查询多题目信息
static batchQueryQuestionDetails(params: any) { static batchQueryQuestionDetails(params: any) {
return batchQueryQuestionDetails(params); return batchQueryQuestionDetails(params)
} }
// 操作试卷-选择题目列表带题目详情 // 操作试卷-选择题目列表带题目详情
static queryQuestionPageListWithContent(params: any) { static queryQuestionPageListWithContent(params: any) {
return queryQuestionPageListWithContent(params); return queryQuestionPageListWithContent(params)
} }
} }
\ No newline at end of file
/* /*
* @Author: 陈剑宇 * @Author: 陈剑宇
* @Date: 2020-05-07 14:43:01 * @Date: 2020-05-07 14:43:01
* @LastEditTime: 2021-04-19 16:42:24 * @LastEditTime: 2021-05-28 15:20:40
* @LastEditors: zhangleyuan * @LastEditors: fusanqiasng
* @Description: * @Description:
* @FilePath: /wheat-web-demo/src/domains/basic-domain/constants.ts * @FilePath: /wheat-web-demo/src/domains/basic-domain/constants.ts
*/ */
import { MapInterface } from '@/domains/basic-domain/interface' import { MapInterface } from '@/domains/basic-domain/interface'
// 默认是 dev 环境 // 默认是 dev 环境
const ENV: string = process.env.DEPLOY_ENV || 'dev'; const ENV: string = process.env.DEPLOY_ENV || 'dev'
console.log("process.env.DEPLOY_ENV",process) console.log('process.env.DEPLOY_ENV', process)
const BASIC_HOST_MAP: MapInterface = { const BASIC_HOST_MAP: MapInterface = {
dev: 'https://dev-heimdall.xiaomai5.com/', dev: 'https://dev-heimdall.xiaomai5.com/',
dev1: 'https://dev1-heimdall.xiaomai5.com/', dev1: 'https://dev1-heimdall.xiaomai5.com/',
rc: 'https://rc-heimdall.xiaomai5.com/', rc: 'https://rc-heimdall.xiaomai5.com/',
gray: 'https://gray-heimdall.xiaomai5.com/', gray: 'https://gray-heimdall.xiaomai5.com/',
prod: 'https://gateway.xiaomai5.com/' prod: 'https://gateway.xiaomai5.com/',
}; }
const PATH_MAP: MapInterface = { const PATH_MAP: MapInterface = {
dev: 'https://dev.xiaomai5.com/xiaomai-cloud-class-web/h5.html', dev: 'https://dev.xiaomai5.com/xiaomai-cloud-class-web/h5.html',
dev1: 'https://dev.xiaomai5.com/xiaomai-cloud-class-web/h5.html', dev1: 'https://dev.xiaomai5.com/xiaomai-cloud-class-web/h5.html',
rc: 'https://rc.xiaomai5.com/xiaomai-cloud-class-web/h5.html', rc: 'https://rc.xiaomai5.com/xiaomai-cloud-class-web/h5.html',
gray: 'https://res.xiaomai0.com/xiaomai-cloud-class-web/gray/h5.html', gray: 'https://res.xiaomai0.com/xiaomai-cloud-class-web/gray/h5.html',
prod: 'https://res.xiaomai0.com/xiaomai-cloud-class-web/h5.html' prod: 'https://res.xiaomai0.com/xiaomai-cloud-class-web/h5.html',
}; }
// axios headers config // axios headers config
export const TIME_OUT: number = 20000; export const TIME_OUT: number = 20000
export const USER_TYPE: string = 'B'; export const USER_TYPE: string = 'B'
export const PROJECT = 'xmzj-web-b'; export const PROJECT = 'xmzj-web-b'
export const VERSION = '5.4.8'; export const VERSION = '5.4.8'
export const PREFIX = 'cloud-class'; export const PREFIX = 'cloud-class'
export const USER_PREFIX = 'store-live'; export const USER_PREFIX = 'store-live'
// host // host
export const BASIC_HOST: string = BASIC_HOST_MAP[ENV]; export const BASIC_HOST: string = BASIC_HOST_MAP[ENV]
export const PATH: string = PATH_MAP[ENV]; export const PATH: string = PATH_MAP[ENV]
<!-- <!--
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-24 12:20:57 * @Date: 2020-08-24 12:20:57
* @LastEditors: zhangleyuan * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-05-10 13:41:44 * @LastEditTime: 2021-05-26 16:26:17
* @Description: * @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
--> -->
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
--> -->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<link rel="stylesheet" href="//at.alicdn.com/t/font_2223403_e0vkqcd8igi.css"> <link rel="stylesheet" href="//at.alicdn.com/t/font_2223403_oqqm4z9s35j.css">
<!-- <!--
Notice the use of %PUBLIC_URL% in the tags above. Notice the use of %PUBLIC_URL% in the tags above.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-24 12:20:57 * @Date: 2020-08-24 12:20:57
* @LastEditors: wufan * @LastEditors: wufan
* @LastEditTime: 2021-05-17 19:53:24 * @LastEditTime: 2021-05-27 10:24:06
* @Description: * @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
--> -->
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
--> -->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<link rel="stylesheet" href="//at.alicdn.com/t/font_2223403_e0vkqcd8igi.css"> <link rel="stylesheet" href="//at.alicdn.com/t/font_2223403_oqqm4z9s35j.css">
<!-- <!--
Notice the use of %PUBLIC_URL% in the tags above. Notice the use of %PUBLIC_URL% in the tags above.
......
.employee-manage-page{
.box-header{
margin-bottom:4px;
}
.add-show-btn{
margin-top:12px;
}
}
\ No newline at end of file
...@@ -263,7 +263,7 @@ function EmployeeManage() { ...@@ -263,7 +263,7 @@ function EmployeeManage() {
} }
return ( return (
<div className=" page employee-manage-page"> <div className="page employee-manage-page">
<div className="content-header">员工管理</div> <div className="content-header">员工管理</div>
<div className="box"> <div className="box">
<div className="box-header"> <div className="box-header">
...@@ -272,7 +272,7 @@ function EmployeeManage() { ...@@ -272,7 +272,7 @@ function EmployeeManage() {
display: "flex", display: "flex",
alignItems: "center", alignItems: "center",
justifyContent: "flex-start", justifyContent: "flex-start",
padding: "0px 0 16px", padding: "0px 0 4px",
}} }}
> >
<div> <div>
......
...@@ -2,13 +2,12 @@ ...@@ -2,13 +2,12 @@
.box-header { .box-header {
display: flex; display: flex;
width: calc(100% - 80px); width: calc(100% - 80px);
margin-bottom: 16px; margin-bottom: 4px;
.header-item { .header-item {
width: 30%; width: 30%;
margin-right: 3%; margin-right: 3%;
display: flex; display: flex;
.item-name { .item-name {
width: 80px;
flex-shrink: 0; flex-shrink: 0;
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: wufan * @Author: wufan
* @Date: 2020-11-30 10:47:38 * @Date: 2020-11-30 10:47:38
* @LastEditors: wufan * @LastEditors: wufan
* @LastEditTime: 2021-05-13 17:45:53 * @LastEditTime: 2021-05-30 15:57:40
* @Description: 学员管理页面 * @Description: 学员管理页面
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -68,7 +68,7 @@ function UserManagePage() { ...@@ -68,7 +68,7 @@ function UserManagePage() {
<span className="title">{val}</span> <span className="title">{val}</span>
<span <span
className="tag" className="tag"
style={{ color: item.sourceEnum === 'WORK_WE_CHAT' ? '#FFB714' : '#1DCC65'}} style={{ color: item.sourceEnum === 'WORK_WE_CHAT' ? '#2966FF' : '#1DCC65'}}
>{item.sourceEnum === 'WORK_WE_CHAT' ? '@企业微信' : '@微信'}</span> >{item.sourceEnum === 'WORK_WE_CHAT' ? '@企业微信' : '@微信'}</span>
</div> </div>
); );
......
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
line-height: 45px; line-height: 45px;
margin-left: 10px; margin-left: 10px;
.span-left-l{ .span-left-l{
color: #ffb714; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
} }
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
margin-right: 10px; margin-right: 10px;
color: #999; color: #999;
.span-right-l{ .span-right-l{
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
} }
......
...@@ -39,9 +39,9 @@ ...@@ -39,9 +39,9 @@
height: 18px; height: 18px;
line-height: 18px; line-height: 18px;
padding: 0 8px; padding: 0 8px;
border: 1px solid #FFB714; border: 1px solid #2966FF;
border-radius: 9px; border-radius: 9px;
color: #FFB714; color: #2966FF;
margin-top: 13px; margin-top: 13px;
font-size: 12px; font-size: 12px;
flex-shrink: 0; flex-shrink: 0;
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
left: 0; left: 0;
height: 100%; height: 100%;
width: 4px; width: 4px;
background: #FFB714; background: #2966FF;
} }
} }
} }
......
...@@ -58,6 +58,7 @@ export default function ExaminationManager(props: any) { ...@@ -58,6 +58,7 @@ export default function ExaminationManager(props: any) {
onPopupScroll={handleScrollTeacherList} onPopupScroll={handleScrollTeacherList}
suffixIcon={<span className="icon iconfont" style={{ fontSize: '12px', color: '#BFBFBF' }}>&#xe835;</span>} suffixIcon={<span className="icon iconfont" style={{ fontSize: '12px', color: '#BFBFBF' }}>&#xe835;</span>}
value={props.val || null} value={props.val || null}
filterOption={(input: any, option: any) => option}
onChange={(value) => { onChange={(value) => {
props.onChange(value) props.onChange(value)
}} }}
......
...@@ -27,7 +27,7 @@ import _ from "underscore"; ...@@ -27,7 +27,7 @@ import _ from "underscore";
import $ from 'jquery'; import $ from 'jquery';
import './AddLive.less'; import './AddLive.less';
const defaultCover = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'; const defaultCover = 'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png';
const defaultBasicInfo = { const defaultBasicInfo = {
courseName: null, // 课程名称 courseName: null, // 课程名称
coverUrl: defaultCover, coverUrl: defaultCover,
...@@ -578,7 +578,7 @@ handleChangeBasicInfo = (field, value) => { ...@@ -578,7 +578,7 @@ handleChangeBasicInfo = (field, value) => {
</div> </div>
</div> </div>
<div className="footer"> <div className="footer shrink-footer">
<Button onClick={this.handleGoBack}>取消</Button> <Button onClick={this.handleGoBack}>取消</Button>
<Button onClick={this.handleShowPreviewModal}>预览</Button> <Button onClick={this.handleShowPreviewModal}>预览</Button>
<Button type="primary" onClick={_.debounce(() => this.handleSubmit(), 3000, true)}>保存</Button> <Button type="primary" onClick={_.debounce(() => this.handleSubmit(), 3000, true)}>保存</Button>
......
.add-live-page { .add-live-page {
position:relative !important; position:relative !important;
.box { .box {
margin-bottom: 66px !important; margin-bottom: 52px !important;
} }
.add-live-page__form { .add-live-page__form {
margin-top: 16px; margin-top: 16px;
...@@ -44,17 +44,34 @@ ...@@ -44,17 +44,34 @@
text-align: right; text-align: right;
} }
} }
.basic-info__wrap, .class-info__wrap, .intro-info__wrap {
.title {
position: relative;
padding-left: 14px;
&::before {
content: "";
position: absolute;
left: 0px;
top: 50%;
transform: translateY(-50%);
width: 4px;
height: 10px;
background: #2966FF;
}
}
}
} }
.footer { .footer {
position: fixed; position: fixed;
left: 196px;
bottom: 0; bottom: 0;
height: 58px; height: 58px;
width: 100%; width: ~'calc(100% - 218px)';
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
padding-right: 252px; padding-right: 72px;
background: #fff; background: #fff;
border-top: 1px solid #E8E8E8; border-top: 1px solid #E8E8E8;
z-index: 9999; z-index: 9999;
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
} }
.handel-btn { .handel-btn {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.split { .split {
...@@ -41,6 +41,18 @@ ...@@ -41,6 +41,18 @@
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
margin-bottom: 16px; margin-bottom: 16px;
position: relative;
padding-left: 14px;
&::before {
content: "";
position: absolute;
left: 0px;
top: 50%;
transform: translateY(-50%);
width: 4px;
height: 10px;
background: #2966FF;
}
} }
.select-course { .select-course {
width: 300px; width: 300px;
...@@ -119,7 +131,7 @@ ...@@ -119,7 +131,7 @@
height: 37px; height: 37px;
font-size: 26px; font-size: 26px;
font-weight: 500; font-weight: 500;
color: #5289fa; color: #2966FF;
line-height: 37px; line-height: 37px;
&.can-click { &.can-click {
cursor: pointer; cursor: pointer;
......
...@@ -17,7 +17,7 @@ import Upload from '@/core/upload'; ...@@ -17,7 +17,7 @@ import Upload from '@/core/upload';
import './AddLiveBasic.less'; import './AddLiveBasic.less';
const defaultCover = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'; const defaultCover = 'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png';
const fieldNames = { label: 'categoryName', value: 'id', children: 'sonCategoryList' }; const fieldNames = { label: 'categoryName', value: 'id', children: 'sonCategoryList' };
let cutFlag = false; let cutFlag = false;
let timer = null let timer = null
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; object-fit: contain;
border: 1px solid #E8e8e8; border-radius: 4px;
} }
} }
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
.default-btn { .default-btn {
margin-left: 16px; margin-left: 16px;
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.disabled { &.disabled {
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
} }
.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled){ .ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled){
font-weight:normal !important; font-weight:normal !important;
color:#FF9D14 !important; color:#2966FF !important;
} }
#imgCutModalNew { #imgCutModalNew {
width: 500px; width: 500px;
......
...@@ -185,7 +185,7 @@ ...@@ -185,7 +185,7 @@
.select-day { .select-day {
margin-bottom: 4px; margin-bottom: 4px;
.mark-day { .mark-day {
color: #5289FA; color: #2966FF;
} }
} }
} }
......
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
} }
.checkExample { .checkExample {
width: 60px; width: 60px;
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.warmup { .warmup {
......
...@@ -36,8 +36,8 @@ class GraphicsEditor extends React.Component { ...@@ -36,8 +36,8 @@ class GraphicsEditor extends React.Component {
resetIndex = (bool) => { resetIndex = (bool) => {
const topDom = document.querySelector('.top-container'); const topDom = document.querySelector('.top-container');
const leftDom = document.querySelector('.left-container'); const leftDom = document.querySelector('.left-container');
topDom.style.zIndex = bool ? 'auto' : 112; // topDom.style.zIndex = bool ? 'auto' : 112;
leftDom.style.zIndex = bool ? 'auto' : 2; // leftDom.style.zIndex = bool ? 'auto' : 2;
} }
renderEditor() { renderEditor() {
......
...@@ -32,7 +32,7 @@ const courseStateShow = { ...@@ -32,7 +32,7 @@ const courseStateShow = {
UN_START: { UN_START: {
code: 1, code: 1,
title: "待开课", title: "待开课",
color: "#FFB714", color: "#FFB129",
}, },
STARTING: { STARTING: {
code: 2, code: 2,
...@@ -166,7 +166,7 @@ class LiveCourseList extends React.Component { ...@@ -166,7 +166,7 @@ class LiveCourseList extends React.Component {
}) })
} }
{ !hasCover && { !hasCover &&
<img className="course-cover" src={'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'} /> <img className="course-cover" src={'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'} />
} }
<div> <div>
{ record.courseName.length > 17? { record.courseName.length > 17?
...@@ -262,7 +262,7 @@ class LiveCourseList extends React.Component { ...@@ -262,7 +262,7 @@ class LiveCourseList extends React.Component {
{ {
title: <span> title: <span>
<span>学院展示</span> <span>学院展示</span>
<Tooltip title={<div>开启后,学员可在学院内查看到此课程。若课程“未成功开课”,则系统会自动“关闭”学院展示。<br/>关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。</div>}><i className="icon iconfont" style={{ marginLeft: '5px',cursor:'pointer',color:'#bfbfbf',fontSize:'14px'}}>&#xe61d;</i></Tooltip> <Tooltip title={<div>开启后,学员可在学院内查看到此课程。若课程“未成功开课”,则系统会自动“关闭”学院展示。<br/>关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。</div>}><i className="icon iconfont" style={{ marginLeft: '5px',cursor:'pointer',color:'#bfbfbf',fontSize:'14px',fontWeight:'normal'}}>&#xe61d;</i></Tooltip>
</span>, </span>,
width: "9%", width: "9%",
key: "shelfState", key: "shelfState",
...@@ -360,7 +360,7 @@ class LiveCourseList extends React.Component { ...@@ -360,7 +360,7 @@ class LiveCourseList extends React.Component {
<span className="operate-text">更多</span> <span className="operate-text">更多</span>
<span <span
className="iconfont icon" className="iconfont icon"
style={{ color: "#5289FA" }} style={{ color: "#2966FF" }}
> >
&#xe824; &#xe824;
</span> </span>
...@@ -400,7 +400,7 @@ class LiveCourseList extends React.Component { ...@@ -400,7 +400,7 @@ class LiveCourseList extends React.Component {
}) })
} }
{ !hasCover && { !hasCover &&
<img className="course-cover" src={'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'} /> <img className="course-cover" src={'https://image.xiaomaiketang.com/xm/Yip2YtFDwH.png'} />
} }
<div> <div>
{ record.courseName.length > 17? { record.courseName.length > 17?
......
...@@ -83,13 +83,13 @@ ...@@ -83,13 +83,13 @@
} }
.courseware{ .courseware{
font-size: 14px; font-size: 14px;
color: #5289FA; color: #2966FF;
line-height: 20px; line-height: 20px;
text-align:right; text-align:right;
cursor:pointer; cursor:pointer;
} }
.quota-icon{ .quota-icon{
color:#5289FA; color:#2966FF;
cursor:pointer; cursor:pointer;
} }
.operate { .operate {
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
.operate__item { .operate__item {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
margin: 0 8px; margin: 0 8px;
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
} }
} }
.operate-text { .operate-text {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.course-start-end { .course-start-end {
......
/* /*
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-05 10:07:47 * @Date: 2020-08-05 10:07:47
* @LastEditors: zhangleyuan * @LastEditors: wufan
* @LastEditTime: 2021-05-10 10:15:31 * @LastEditTime: 2021-05-27 16:37:28
* @Description: 图文课新增/编辑页 * @Description: 图文课新增/编辑页
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -33,7 +33,7 @@ const fieldNames = { label: 'categoryName', value: 'id', children: 'sonCategory ...@@ -33,7 +33,7 @@ const fieldNames = { label: 'categoryName', value: 'id', children: 'sonCategory
//添加课程时课程默认的一些值 //添加课程时课程默认的一些值
const defaultShelfState = 'YES'; const defaultShelfState = 'YES';
const whetherVisitorsJoin = 'NO' const whetherVisitorsJoin = 'NO'
const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'; const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/wFnpZtp2yB.png';
let cutFlag = false; let cutFlag = false;
class AddGraphicsCourse extends React.Component { class AddGraphicsCourse extends React.Component {
...@@ -530,7 +530,7 @@ class AddGraphicsCourse extends React.Component { ...@@ -530,7 +530,7 @@ class AddGraphicsCourse extends React.Component {
const courseWareIcon = FileVerifyMap[videoType] ? FileTypeIcon[FileVerifyMap[videoType].type] : FileTypeIcon[videoType]; const courseWareIcon = FileVerifyMap[videoType] ? FileTypeIcon[FileVerifyMap[videoType].type] : FileTypeIcon[videoType];
return ( return (
<div className="page add-video-course-page"> <div className="page add-graphics-course-page">
<Breadcrumbs <Breadcrumbs
navList={pageType === "add" ? "新建图文课" : "编辑图文课"} navList={pageType === "add" ? "新建图文课" : "编辑图文课"}
goBack={this.handleGoBack} goBack={this.handleGoBack}
...@@ -596,7 +596,7 @@ class AddGraphicsCourse extends React.Component { ...@@ -596,7 +596,7 @@ class AddGraphicsCourse extends React.Component {
</div> </div>
</div> </div>
<div className="footer"> <div className="footer shrink-footer">
<Button onClick={this.handleGoBack}>取消</Button> <Button onClick={this.handleGoBack}>取消</Button>
<Button onClick={this.handleShowPreviewModal}>预览</Button> <Button onClick={this.handleShowPreviewModal}>预览</Button>
<Button type="primary" onClick={_.debounce(() => this.handleSubmit(), 3000, true)}>保存</Button> <Button type="primary" onClick={_.debounce(() => this.handleSubmit(), 3000, true)}>保存</Button>
......
.add-video-course-page { .add-graphics-course-page {
position:relative !important; position:relative !important;
.box{ .box{
margin-bottom:66px !important; margin-bottom:52px !important;
} }
.ant-radio-group { .ant-radio-group {
display: flex; display: flex;
...@@ -80,6 +80,7 @@ ...@@ -80,6 +80,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; object-fit: contain;
border-radius: 4px;
} }
} }
.empty-img { .empty-img {
...@@ -129,13 +130,14 @@ ...@@ -129,13 +130,14 @@
.footer { .footer {
position: fixed; position: fixed;
left: 196px;
bottom: 0; bottom: 0;
height: 58px; height: 58px;
width: 100%; width: ~'calc(100% - 218px)';
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
padding-right: 252px; padding-right: 72px;
background: #fff; background: #fff;
border-top: 1px solid #E8E8E8; border-top: 1px solid #E8E8E8;
z-index: 999; z-index: 999;
......
/* /*
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-05 10:12:45 * @Date: 2020-08-05 10:12:45
* @LastEditors: wufan * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-05-13 16:32:38 * @LastEditTime: 2021-05-27 20:13:53
* @Description: 视频课-列表模块 * @Description: 视频课-列表模块
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -25,7 +25,7 @@ import User from '@/common/js/user' ...@@ -25,7 +25,7 @@ import User from '@/common/js/user'
import './GraphicsCourseList.less'; import './GraphicsCourseList.less';
const ENV = process.env.DEPLOY_ENV || 'dev'; const ENV = process.env.DEPLOY_ENV || 'dev';
const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'; const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/wFnpZtp2yB.png';
class GraphicsCourseList extends React.Component { class GraphicsCourseList extends React.Component {
...@@ -137,7 +137,7 @@ class GraphicsCourseList extends React.Component { ...@@ -137,7 +137,7 @@ class GraphicsCourseList extends React.Component {
{ {
title: <span> title: <span>
<span>学院展示</span> <span>学院展示</span>
<Tooltip title={<div>开启后,学员可在学院内查看到此课程。<br/>关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。</div>}><i className="icon iconfont" style={{ marginLeft: '5px',cursor:'pointer',color:'#bfbfbf',fontSize:'14px'}}>&#xe61d;</i></Tooltip> <Tooltip title={<div>开启后,学员可在学院内查看到此课程。<br/>关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。</div>}><i className="icon iconfont" style={{ marginLeft: '5px',cursor:'pointer',color:'#bfbfbf',fontSize:'14px',fontWeight:'normal'}}>&#xe61d;</i></Tooltip>
</span>, </span>,
width: 120, width: 120,
dataIndex: "courseware", dataIndex: "courseware",
...@@ -218,7 +218,7 @@ class GraphicsCourseList extends React.Component { ...@@ -218,7 +218,7 @@ class GraphicsCourseList extends React.Component {
<span className="operate-text">更多</span> <span className="operate-text">更多</span>
<span <span
className="iconfont icon" className="iconfont icon"
style={{ color: "#5289FA" }} style={{ color: "#2966FF" }}
> >
&#xe824; &#xe824;
</span> </span>
......
.video-course-list { .video-course-list {
margin-top: 12px; margin-top: 12px;
.video-list-table{ .video-list-table {
tbody { tbody {
tr{ tr {
&:nth-child(even){ &:nth-child(even) {
background: transparent !important; background: transparent !important;
td{ td {
background:#FFF !important; background: #fff !important;
} }
} }
&:nth-child(odd){ &:nth-child(odd) {
background: #FAFAFA !important; background: #fafafa !important;
td{ td {
background: #FAFAFA !important; background: #fafafa !important;
} }
} }
&:hover{ &:hover {
td{ td {
background:#F3f6fa !important; background: #f3f6fa !important;
} }
} }
} }
} }
} }
.watchUserCount{ .watchUserCount {
text-align:right; text-align: right;
padding:16px; padding: 16px;
} }
.operate-text { .operate-text {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.operate { .operate {
display: flex; display: flex;
&__item { &__item {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
margin: 0 8px; margin: 0 8px;
color: #BFBFBF; color: #bfbfbf;
} }
} }
} }
.more-operate{ .more-operate {
line-height:20px; line-height: 20px;
} }
.record__item { .record__item {
display: flex; display: flex;
.course-cover { .course-cover {
min-width: 97px; width: 97px;
max-width: 97px;
height: 50px; height: 50px;
border-radius: 2px; border-radius: 2px;
margin-right: 8px; margin-right: 8px;
background-color: #666; object-fit: contain;
} }
.course-name { .course-name {
color: #666; color: #666;
width:188px; width: 188px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
height:48px; height: 48px;
} }
} }
} }
.video-course-more-menu { .video-course-more-menu {
...@@ -85,4 +83,4 @@ ...@@ -85,4 +83,4 @@
background: #f3f6fa; background: #f3f6fa;
} }
} }
} }
\ No newline at end of file
...@@ -284,7 +284,7 @@ class ManageCoursewareModal extends React.Component { ...@@ -284,7 +284,7 @@ class ManageCoursewareModal extends React.Component {
onCancel={() => { }} onCancel={() => { }}
> >
<span style={{ <span style={{
color: '#5289FA', color: '#2966FF',
cursor: 'pointer' cursor: 'pointer'
}}>删除</span> }}>删除</span>
</Popconfirm> </Popconfirm>
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
} }
&:hover { &:hover {
.name { .name {
color: #FFB714; color: #2966FF;
} }
} }
} }
......
...@@ -27,7 +27,7 @@ class PreviewGraphicsModal extends React.Component { ...@@ -27,7 +27,7 @@ class PreviewGraphicsModal extends React.Component {
footer={null} footer={null}
maskClosable={false} maskClosable={false}
closeIcon={<span className="icon iconfont modal-close-icon">&#xe6ef;</span>} closeIcon={<span className="icon iconfont modal-close-icon">&#xe6ef;</span>}
className="preview-live-graphics-modal" className="preview-graphics-modal"
> >
<div className="container__wrap"> <div className="container__wrap">
<div className="container"> <div className="container">
......
.preview-live-graphics-modal { .preview-graphics-modal {
.ant-modal-body { .ant-modal-body {
background-image: url('https://image.xiaomaiketang.com/xm/xZWdziTCAf.png'); background-image: url('https://image.xiaomaiketang.com/xm/xZWdziTCAf.png');
background-size: 100% 100%; background-size: 100% 100%;
...@@ -13,13 +13,12 @@ ...@@ -13,13 +13,12 @@
} }
.container { .container {
overflow: scroll; overflow: auto;
height: 100%;; height: 100%;;
.course-cover, .course-url { .course-cover, .course-url {
width: 100%; width: 100%;
height: 141px; height: 141px;
background: #000;
} }
&__body { &__body {
...@@ -55,21 +54,20 @@ ...@@ -55,21 +54,20 @@
font-size: 12px; font-size: 12px;
color: #333333; color: #333333;
padding: 0 10px; padding: 0 10px;
border-bottom: 1px solid #E8E8E8;
.title-word { .title-word {
position: relative; position: relative;
margin-right: 15px; margin-right: 15px;
cursor: pointer; cursor: pointer;
} }
.selected { .selected {
color: #FFB714; color: #2966FF;
&::after { &::after {
content: ''; content: '';
position: absolute; position: absolute;
bottom: -4px; bottom: -4px;
width: 20px; width: 20px;
height: 1px; height: 1px;
background: #FFB714; background: #2966FF;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
.select-container{ .select-container{
margin-bottom:12px; margin-bottom:12px;
.con{ .con{
background: #FFF4DD; background: #E9EFFF;
border-radius: 4px; border-radius: 4px;
padding:6px 16px; padding:6px 16px;
display: inline-flex; display: inline-flex;
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
justify-content: space-between; justify-content: space-between;
.tip{ .tip{
font-size:14px; font-size:14px;
color:#FF9D14; color:#2966FF;
margin-right:8px; margin-right:8px;
} }
.text{ .text{
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
margin-right:30px; margin-right:30px;
} }
.clear{ .clear{
color:#5289FA; color:#2966FF;
font-size:14px; font-size:14px;
} }
......
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
margin-bottom: 40px; margin-bottom: 40px;
.content { .content {
color:rgba(82, 137, 250, 1); color:#2966FF;
cursor: pointer; cursor: pointer;
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-05 10:07:47 * @Date: 2020-08-05 10:07:47
* @LastEditors: wufan * @LastEditors: wufan
* @LastEditTime: 2021-05-25 20:00:18 * @LastEditTime: 2021-05-27 19:25:48
* @Description: 线下课新增/编辑页 * @Description: 线下课新增/编辑页
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -41,7 +41,7 @@ import MultipleDatePicker from '@/components/MultipleDatePicker'; ...@@ -41,7 +41,7 @@ import MultipleDatePicker from '@/components/MultipleDatePicker';
import './AddOfflineCourse.less'; import './AddOfflineCourse.less';
const { Option } = Select; const { Option } = Select;
const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'; const defaultCoverUrl = 'https://image.xiaomaiketang.com/xm/pxbWKsYA87.png';
let cutFlag = false; let cutFlag = false;
const unitList = [ const unitList = [
{ key: 'HOUR', value: '小时' }, { key: 'HOUR', value: '小时' },
...@@ -1046,8 +1046,8 @@ class AddOfflineCourse extends React.Component { ...@@ -1046,8 +1046,8 @@ class AddOfflineCourse extends React.Component {
<span <span
onClick={() => this.setState({ startTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).subtract(1, 'days').valueOf(), endTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).valueOf() - 1000 })} onClick={() => this.setState({ startTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).subtract(1, 'days').valueOf(), endTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).valueOf() - 1000 })}
style={{ style={{
color: '#FFB714', color: '#2966FF',
border: '1px solid #FFB714', border: '1px solid #2966FF',
padding: '2px 8px', padding: '2px 8px',
borderRadius: '2px', borderRadius: '2px',
marginRight: 8, marginRight: 8,
...@@ -1056,8 +1056,8 @@ class AddOfflineCourse extends React.Component { ...@@ -1056,8 +1056,8 @@ class AddOfflineCourse extends React.Component {
<span <span
onClick={() => this.setState({ startTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).subtract(2, 'days').valueOf(), endTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).valueOf() - 1000 })} onClick={() => this.setState({ startTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).subtract(2, 'days').valueOf(), endTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).valueOf() - 1000 })}
style={{ style={{
color: '#FFB714', color: '#2966FF',
border: '1px solid #FFB714', border: '1px solid #2966FF',
padding: '2px 8px', padding: '2px 8px',
borderRadius: '2px', borderRadius: '2px',
marginRight: 8, marginRight: 8,
...@@ -1066,8 +1066,8 @@ class AddOfflineCourse extends React.Component { ...@@ -1066,8 +1066,8 @@ class AddOfflineCourse extends React.Component {
<span <span
onClick={() => this.setState({ startTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).subtract(3, 'days').valueOf(), endTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).valueOf() - 1000 })} onClick={() => this.setState({ startTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).subtract(3, 'days').valueOf(), endTimeApply: moment(`${moment(calendarTime[0]).format('YYYY-MM-DD')} ${moment(startTime).format('HH:mm')}`).valueOf() - 1000 })}
style={{ style={{
color: '#FFB714', color: '#2966FF',
border: '1px solid #FFB714', border: '1px solid #2966FF',
padding: '2px 8px', padding: '2px 8px',
borderRadius: '2px', borderRadius: '2px',
marginRight: 8, marginRight: 8,
......
.add-offline-course-page { .add-offline-course-page {
position:relative !important; position:relative !important;
.box{ .box{
margin-bottom:66px !important; margin-bottom:52px !important;
} }
.ant-radio-group { .ant-radio-group {
display: flex; display: flex;
...@@ -36,6 +36,18 @@ ...@@ -36,6 +36,18 @@
line-height: 22px; line-height: 22px;
margin-bottom: 16px; margin-bottom: 16px;
margin-left: -16px; margin-left: -16px;
position: relative;
padding-left: 14px;
&::before {
content: "";
position: absolute;
left: 0px;
top: 50%;
transform: translateY(-50%);
width: 4px;
height: 10px;
background: #2966FF;
}
} }
} }
.label{ .label{
...@@ -98,7 +110,7 @@ ...@@ -98,7 +110,7 @@
.select-day { .select-day {
margin-bottom: 4px; margin-bottom: 4px;
.mark-day { .mark-day {
color: #FFB714; color: #2966FF;
} }
} }
} }
...@@ -165,7 +177,6 @@ ...@@ -165,7 +177,6 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; object-fit: contain;
border: 1px solid #E8e8e8;
} }
} }
...@@ -173,7 +184,7 @@ ...@@ -173,7 +184,7 @@
.default-btn { .default-btn {
margin-left: 16px; margin-left: 16px;
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.disabled { &.disabled {
...@@ -219,11 +230,11 @@ ...@@ -219,11 +230,11 @@
position: fixed; position: fixed;
bottom: 0; bottom: 0;
height: 58px; height: 58px;
width: 100%; width: ~'calc(100% - 218px)';
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
padding-right: 252px; padding-right: 72px;
background: #fff; background: #fff;
border-top: 1px solid #E8E8E8; border-top: 1px solid #E8E8E8;
z-index: 999; z-index: 999;
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
width: 4px; width: 4px;
height: 16px; height: 16px;
content: ''; content: '';
background: #FFB714; background: #2966FF;
left: 0; left: 0;
top: 5px; top: 5px;
} }
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
} }
} }
.calendar-text { .calendar-text {
color: #FF9D14; color: #2966FF;
line-height: 20px; line-height: 20px;
margin: 0 44px; margin: 0 44px;
} }
...@@ -85,7 +85,8 @@ ...@@ -85,7 +85,8 @@
cursor: pointer; cursor: pointer;
} }
&.selected { &.selected {
background: rgba(255, 183, 20, 0.06); background: #E9EFFF;
color: #2966FF;
} }
} }
} }
......
import React from 'react'; import React from 'react'
import { Row, Input, Select,Tooltip } from 'antd'; import { Row, Input, Select, Tooltip } from 'antd'
import RangePicker from "@/modules/common/DateRangePicker"; import RangePicker from '@/modules/common/DateRangePicker'
import './OfflineCourseFilter.less'; import './OfflineCourseFilter.less'
import moment from 'moment'; import moment from 'moment'
import StoreService from "@/domains/store-domain/storeService"; import StoreService from '@/domains/store-domain/storeService'
const { Search } = Input; const { Search } = Input
const { Option } = Select; const { Option } = Select
const DEFAULT_QUERY = { const DEFAULT_QUERY = {
courseName: null, // 课程名称 courseName: null, // 课程名称
operatorId: null, // 创建人 operatorId: null, // 创建人
beginTime: null, // 开始日期 beginTime: null, // 开始日期
endTime: null, // 结束日期 endTime: null, // 结束日期
shelfState:null, shelfState: null,
} }
const defaultTeacherQuery = { const defaultTeacherQuery = {
size: 10, size: 10,
current: 1, current: 1,
nickName:null nickName: null,
} }
class OfflineCourseFilter extends React.Component { class OfflineCourseFilter extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props)
this.state = { this.state = {
query: { ...DEFAULT_QUERY }, // 使用扩展运算符,避免浅拷贝 query: { ...DEFAULT_QUERY }, // 使用扩展运算符,避免浅拷贝
teacherQuery: defaultTeacherQuery, teacherQuery: defaultTeacherQuery,
teacherList:[], teacherList: [],
expandFilter:false expandFilter: false,
} }
} }
componentDidMount() { componentDidMount() {
this.getTeacherList(); this.getTeacherList()
} }
getTeacherList(current = 1, selectList){ getTeacherList(current = 1, selectList) {
const { teacherQuery,teacherList} = this.state; const { teacherQuery, teacherList } = this.state
const _query = { const _query = {
...teacherQuery, ...teacherQuery,
current, current,
size:10 size: 10,
}; }
StoreService.getStoreUserBasicPage( _query).then((res) => { StoreService.getStoreUserBasicPage(_query).then((res) => {
const { result = {} } = res; const { result = {} } = res
const { records = [], total = 0, hasNext } = result; const { records = [], total = 0, hasNext } = result
const list = current > 1 ? teacherList.concat(records) : records; const list = current > 1 ? teacherList.concat(records) : records
this.setState({ this.setState({
hasNext, hasNext,
teacherList: list, teacherList: list,
}) })
}); })
} }
// 滑动加载更多讲师列表 // 滑动加载更多讲师列表
handleScrollTeacherList = (e) => { handleScrollTeacherList = (e) => {
const { hasNext } = this.state; const { hasNext } = this.state
const container = e.target; const container = e.target
const scrollToBottom = container && container.scrollHeight <= container.clientHeight + container.scrollTop; const scrollToBottom = container && container.scrollHeight <= container.clientHeight + container.scrollTop
if (scrollToBottom && hasNext) { if (scrollToBottom && hasNext) {
const { teacherQuery } = this.state; const { teacherQuery } = this.state
let _teacherQuery = teacherQuery; let _teacherQuery = teacherQuery
_teacherQuery.current = _teacherQuery.current + 1 _teacherQuery.current = _teacherQuery.current + 1
this.setState({ this.setState(
teacherQuery:{..._teacherQuery} {
},()=>{this.getTeacherList(_teacherQuery.current)}) teacherQuery: { ..._teacherQuery },
},
() => {
this.getTeacherList(_teacherQuery.current)
}
)
} }
} }
// 改变搜索条件 // 改变搜索条件
handleChangeQuery = (field, value) => { handleChangeQuery = (field, value) => {
this.setState({ this.setState(
query: { {
...this.state.query, query: {
[field]: value, ...this.state.query,
current: 1, [field]: value,
current: 1,
},
},
() => {
if (field === 'courseName') return
this.props.onChange(this.state.query)
} }
}, () => { )
if (field === 'courseName') return;
this.props.onChange(this.state.query)
});
} }
handleChangeDates = (dates) => { handleChangeDates = (dates) => {
const query = _.clone(this.state.query); const query = _.clone(this.state.query)
if (_.isEmpty(dates)) { if (_.isEmpty(dates)) {
delete query.beginTime; delete query.beginTime
delete query.endTime; delete query.endTime
} else { } else {
query.beginTime = dates[0].valueOf(); query.beginTime = dates[0]?.startOf('day').valueOf()
query.endTime = dates[1].valueOf(); query.endTime = dates[0]?.endOf('day').valueOf()
} }
this.setState({ this.setState(
query:{ {
...query, query: {
current: 1, ...query,
current: 1,
},
},
() => {
this.props.onChange(this.state.query)
} }
}, () => { )
this.props.onChange(this.state.query);
})
} }
// 重置搜索条件 // 重置搜索条件
handleReset = () => { handleReset = () => {
this.setState({ this.setState(
query: DEFAULT_QUERY, {
}, () => { query: DEFAULT_QUERY,
this.props.onChange(this.state.query); },
}) () => {
this.props.onChange(this.state.query)
}
)
} }
render() { render() {
const { const {
query: { query: { courseName, courseState, shelfState },
courseName,
courseState,
shelfState,
},
expandFilter, expandFilter,
} = this.state; } = this.state
return ( return (
<div className="video-course-filter"> <div className='video-course-filter'>
<Row type="flex" justify="space-between" align="top"> <Row type='flex' justify='space-between' align='top'>
<div className="search-condition"> <div className='search-condition'>
<div className="search-condition__item"> <div className='search-condition__item'>
<span className="search-name">线下课名称:</span> <span className='search-name'>线下课名称:</span>
<Search <Search
value={courseName} value={courseName}
placeholder="搜索线下课名称" placeholder='搜索线下课名称'
onChange={(e) => { this.handleChangeQuery('courseName', e.target.value)}} onChange={(e) => {
onSearch={ () => { this.props.onChange(this.state.query) } } this.handleChangeQuery('courseName', e.target.value)
style={{ width: "calc(100% - 84px)" }} }}
enterButton={<span className="icon iconfont" style={{fontSize: '16px'}}>&#xe832;</span>} onSearch={() => {
this.props.onChange(this.state.query)
}}
style={{ width: 'calc(100% - 84px)' }}
enterButton={
<span className='icon iconfont' style={{ fontSize: '16px' }}>
&#xe832;
</span>
}
/> />
</div> </div>
<div className="search-condition__item"> <div className='search-condition__item'>
<span className="shelf-status">学院展示:</span> <span className='shelf-status'>学院展示:</span>
<Select <Select
style={{ width: "calc(100% - 84px)" }} style={{ width: 'calc(100% - 84px)' }}
placeholder="请选择" placeholder='请选择'
allowClear={true} allowClear={true}
value={shelfState} value={shelfState}
onChange={(value) => { this.handleChangeQuery('shelfState', value) }} onChange={(value) => {
suffixIcon={<span className="icon iconfont" style={{fontSize:'12px',color:'#BFBFBF'}}>&#xe835;</span>} this.handleChangeQuery('shelfState', value)
> }}
<Option value="YES">开启</Option> suffixIcon={
<Option value="NO">关闭</Option> <span className='icon iconfont' style={{ fontSize: '12px', color: '#BFBFBF' }}>
&#xe835;
</span>
}>
<Option value='YES'>开启</Option>
<Option value='NO'>关闭</Option>
</Select> </Select>
</div> </div>
</div> </div>
<div className="reset-fold-area"> <div className='reset-fold-area'>
<Tooltip title="清空筛选"><span className="resetBtn iconfont icon" onClick={this.handleReset}>&#xe61b; </span></Tooltip> <Tooltip title='清空筛选'>
</div> <span className='resetBtn iconfont icon' onClick={this.handleReset}>
&#xe61b;{' '}
</span>
</Tooltip>
</div>
</Row> </Row>
</div> </div>
) )
} }
} }
export default OfflineCourseFilter; export default OfflineCourseFilter
/* /*
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-05 10:12:45 * @Date: 2020-08-05 10:12:45
* @LastEditors: zhangleyuan * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-03-27 16:24:47 * @LastEditTime: 2021-05-27 20:14:01
* @Description: 视频课-列表模块 * @Description: 视频课-列表模块
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -123,7 +123,7 @@ class OfflineCourseList extends React.Component { ...@@ -123,7 +123,7 @@ class OfflineCourseList extends React.Component {
{ {
title: <span> title: <span>
<span>学院展示</span> <span>学院展示</span>
<Tooltip title={<div>开启后,学员可在学院内查看到此课程。若课程“取消”,则系统会自动“关闭”学院展示。<br/>关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。</div>}><i className="icon iconfont" style={{ marginLeft: '5px',cursor:'pointer',color:'#bfbfbf',fontSize:'14px'}}>&#xe61d;</i></Tooltip> <Tooltip title={<div>开启后,学员可在学院内查看到此课程。若课程“取消”,则系统会自动“关闭”学院展示。<br/>关闭后,学院内不再展示此课程,但学员仍可通过分享的海报/链接查看此课程。</div>}><i className="icon iconfont" style={{ marginLeft: '5px',cursor:'pointer',color:'#bfbfbf',fontSize:'14px',fontWeight:'normal'}}>&#xe61d;</i></Tooltip>
</span>, </span>,
width: 120, width: 120,
dataIndex: "courseware", dataIndex: "courseware",
...@@ -200,7 +200,7 @@ class OfflineCourseList extends React.Component { ...@@ -200,7 +200,7 @@ class OfflineCourseList extends React.Component {
<span className="operate-text">更多</span> <span className="operate-text">更多</span>
<span <span
className="iconfont icon" className="iconfont icon"
style={{ color: "#5289FA" }} style={{ color: "#2966FF" }}
> >
&#xe824; &#xe824;
</span> </span>
......
...@@ -28,14 +28,14 @@ ...@@ -28,14 +28,14 @@
padding:16px; padding:16px;
} }
.operate-text { .operate-text {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.operate { .operate {
display: flex; display: flex;
&__item { &__item {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
......
...@@ -87,8 +87,8 @@ class PreviewOfflineModal extends React.Component { ...@@ -87,8 +87,8 @@ class PreviewOfflineModal extends React.Component {
signOutEndTimeUnit, signOutEndTimeUnit,
} = this.state; } = this.state;
const unit = (signInTimeUnit || '').toLocaleLowerCase() + 's'; const unit = (signInTimeUnit || '').toLocaleLowerCase() + 's';
const time = (signInType == 'START_AGO' ? startTime : endTime) && moment(signInType == 'START_AGO' ? startTime : endTime).subtract(signInTimeNum, unit); const time = (signInType === 'START_AGO' ? startTime : endTime) && moment(signInType === 'START_AGO' ? startTime : endTime).subtract(signInTimeNum, unit);
const signInTime = (time && signInTimeNum) && `${moment(time).format('HH:mm')} ~ ${moment(signInType == 'START_AGO' ? startTime : endTime).format('HH:mm')}`; const signInTime = (time && signInTimeNum) && `${moment(time).format('HH:mm')} ~ ${moment(signInType === 'START_AGO' ? startTime : endTime).format('HH:mm')}`;
const endUnit = (signOutEndTimeUnit || '').toLocaleLowerCase() + 's'; const endUnit = (signOutEndTimeUnit || '').toLocaleLowerCase() + 's';
const end = (endTime && signOutEndTimeNum) && moment(endTime).add(signOutEndTimeNum, endUnit); const end = (endTime && signOutEndTimeNum) && moment(endTime).add(signOutEndTimeNum, endUnit);
let startUnit = ''; let startUnit = '';
...@@ -108,7 +108,7 @@ class PreviewOfflineModal extends React.Component { ...@@ -108,7 +108,7 @@ class PreviewOfflineModal extends React.Component {
footer={null} footer={null}
maskClosable={false} maskClosable={false}
closeIcon={<span className="icon iconfont modal-close-icon">&#xe6ef;</span>} closeIcon={<span className="icon iconfont modal-close-icon">&#xe6ef;</span>}
className="preview-live-graphics-modal" className="preview-offline-modal"
> >
<div className="container__wrap"> <div className="container__wrap">
<div className="container"> <div className="container">
......
.preview-live-graphics-modal { .preview-offline-modal {
.ant-modal-body { .ant-modal-body {
background-image: url('https://image.xiaomaiketang.com/xm/xZWdziTCAf.png'); background-image: url('https://image.xiaomaiketang.com/xm/xZWdziTCAf.png');
background-size: 100% 100%; background-size: 100% 100%;
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
} }
.container { .container {
overflow: scroll; overflow: auto;
height: 100%;; height: 100%;;
&__header { &__header {
position: relative; position: relative;
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
content: ''; content: '';
width: 2px; width: 2px;
height: 14px; height: 14px;
background: #FFB714; background: #2966FF;
left: 0; left: 0;
top: 2px; top: 2px;
} }
......
.add-video-course-page { .add-video-course-page {
position:relative !important; position:relative !important;
.box{ .box{
margin-bottom:66px !important; margin-bottom:52px !important;
} }
.ant-radio-group { .ant-radio-group {
display: flex; display: flex;
...@@ -129,13 +129,14 @@ ...@@ -129,13 +129,14 @@
.footer { .footer {
position: fixed; position: fixed;
left: 196px;
bottom: 0; bottom: 0;
height: 58px; height: 58px;
width: 100%; width: ~'calc(100% - 218px)';
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
padding-right: 252px; padding-right: 72px;
background: #fff; background: #fff;
border-top: 1px solid #E8E8E8; border-top: 1px solid #E8E8E8;
z-index: 999; z-index: 999;
......
.video-course-list { .video-course-list {
margin-top: 12px; margin-top: 12px;
.video-list-table{ &.video-course-list-mt {
margin-top: 4px;
}
.video-list-table {
tbody { tbody {
tr{ tr {
&:nth-child(even){ &:nth-child(even) {
background: transparent !important; background: transparent !important;
td{ td {
background:#FFF !important; background: #fff !important;
} }
} }
&:nth-child(odd){ &:nth-child(odd) {
background: #FAFAFA !important; background: #fafafa !important;
td{ td {
background: #FAFAFA !important; background: #fafafa !important;
} }
} }
&:hover{ &:hover {
td{ td {
background:#F3f6fa !important; background: #f3f6fa !important;
} }
} }
} }
} }
} }
.watchUserCount{ .watchUserCount {
text-align:right; text-align: right;
padding:16px; padding: 16px;
} }
.operate-text { .operate-text {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.operate { .operate {
display: flex; display: flex;
&__item { &__item {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
margin: 0 8px; margin: 0 8px;
color: #BFBFBF; color: #bfbfbf;
} }
} }
} }
.more-operate{ .more-operate {
line-height:20px; line-height: 20px;
} }
.record__item { .record__item {
display: flex; display: flex;
...@@ -56,21 +59,20 @@ ...@@ -56,21 +59,20 @@
height: 50px; height: 50px;
border-radius: 2px; border-radius: 2px;
margin-right: 8px; margin-right: 8px;
background-color: #666;
} }
.course-name { .course-name {
color: #666; color: #666;
width:188px; width: 188px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
height:48px; height: 48px;
} }
} }
.related-task{ .related-task {
text-overflow: -o-ellipsis-lastline; text-overflow: -o-ellipsis-lastline;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
...@@ -93,4 +95,4 @@ ...@@ -93,4 +95,4 @@
background: #f3f6fa; background: #f3f6fa;
} }
} }
} }
\ No newline at end of file
/* import React from 'react'
* @Author: 吴文洁 import { Tabs } from 'antd'
* @Date: 2020-08-05 10:08:06 import VideoCourseFilter from './components/VideoCourseFilter'
* @LastEditors: zhangleyuan import VideoCourseOpt from './components/VieoCourseOpt'
* @LastEditTime: 2020-12-26 15:56:49 import VideoCourseList from './components/VideoCourseList'
* @Description: 云课堂-视频课入口页面 import CourseService from '@/domains/course-domain/CourseService'
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
import React from 'react';
import VideoCourseFilter from './components/VideoCourseFilter';
import VideoCourseOpt from './components/VieoCourseOpt';
import VideoCourseList from './components/VideoCourseList';
import CourseService from "@/domains/course-domain/CourseService";
import User from '@/common/js/user' import User from '@/common/js/user'
const { TabPane } = Tabs
class VideoCourse extends React.Component { class VideoCourse extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props)
this.state = { this.state = {
query: { query: {
size: 10, size: 10,
current: 1, current: 1,
storeId:User.getStoreId() storeId: User.getStoreId(),
}, },
dataSource: [], // 视频课列表 dataSource: [], // 视频课列表
totalCount: 0, // 视频课数据总条数 totalCount: 0, // 视频课数据总条数
currentTabKey: 'internal',
} }
} }
componentWillMount() { componentWillMount() {
// 获取视频课列表 // 获取视频课列表
this.handleFetchScheduleList(); this.handleFetchScheduleList()
} }
// 获取视频课列表 // 获取视频课列表
handleFetchScheduleList = (_query = {}) => { handleFetchScheduleList = (_query = {}) => {
const { currentTabKey } = this.state
const query = { const query = {
...this.state.query, ...this.state.query,
..._query ..._query,
};
courseDivision: currentTabKey === 'external' ? 1 : null,
}
// 更新请求参数 // 更新请求参数
this.setState({ query }); this.setState({ query })
CourseService.videoSchedulePage(query).then((res) => { CourseService.videoSchedulePage(query).then((res) => {
const { result = {} } = res || {}; const { result = {} } = res || {}
const { records = [], total = 0 } = result; const { records = [], total = 0 } = result
if (Number(total) && query.size * (query.current - 1) >= Number(total)) {
this.handleFetchScheduleList({
...query,
current: 1,
})
return
}
this.setState({ this.setState({
dataSource: records, dataSource: records,
totalCount: Number(total) totalCount: Number(total),
}); })
}); })
}
currenTabChange = (currentTabKey) => {
const { query } = this.state
this.setState(
{
currentTabKey,
query: {
...query,
current: 1,
},
},
() => {
this.handleFetchScheduleList()
}
)
}
changeShelfState = (index, shelfState) => {
const { dataSource } = this.state
dataSource[index].shelfState = shelfState
this.setState({
dataSource,
})
} }
render() { render() {
const { dataSource, totalCount, query } = this.state; const { dataSource, totalCount, query, currentTabKey } = this.state
return ( return (
<div className="page video-course-page"> <div className='page video-course-page'>
<div className="content-header">视频课</div> <div className='content-header'>视频课</div>
<div className="box"> <div className='box'>
{/* 搜索模块 */} <Tabs onChange={this.currenTabChange} activeKey={currentTabKey}>
<VideoCourseFilter <TabPane key='internal' tab='内部课程'></TabPane>
onChange={this.handleFetchScheduleList}
/>
<TabPane key='external' tab='外部课程'></TabPane>
</Tabs>
{/* 搜索模块 */}
<VideoCourseFilter currentTabKey={currentTabKey} onChange={this.handleFetchScheduleList} />
{/* 操作模块 */} {/* 操作模块 */}
<VideoCourseOpt /> <If condition={currentTabKey === 'internal'}>
<VideoCourseOpt />
</If>
{/* 视频课列表模块 */} {/* 视频课列表模块 */}
<VideoCourseList <VideoCourseList
type={currentTabKey}
query={query} query={query}
dataSource={dataSource} dataSource={dataSource}
totalCount={totalCount} totalCount={totalCount}
onChange={this.handleFetchScheduleList} onChange={this.handleFetchScheduleList}
changeShelfState={this.changeShelfState}
/> />
</div> </div>
</div> </div>
...@@ -82,4 +111,4 @@ class VideoCourse extends React.Component { ...@@ -82,4 +111,4 @@ class VideoCourse extends React.Component {
} }
} }
export default VideoCourse; export default VideoCourse
...@@ -189,13 +189,13 @@ class Home extends React.Component { ...@@ -189,13 +189,13 @@ class Home extends React.Component {
} }
} }
}) })
this._chart.line().position('time*studyNum').color('#5289FA').tooltip('time*studyNum', function( time, studyNum){ this._chart.line().position('time*studyNum').color('#2966FF').tooltip('time*studyNum', function( time, studyNum){
return { return {
name: '学习人数', name: '学习人数',
value: studyNum + '人' value: studyNum + '人'
} }
}); });
this._chart.line().position('time*studyTime').color('#FFB714').tooltip('time*studyTime', function( time, studyTime){ this._chart.line().position('time*studyTime').color('#FFBB54').tooltip('time*studyTime', function( time, studyTime){
return { return {
name: '人均学习时长', name: '人均学习时长',
value: studyTime + '分钟' value: studyTime + '分钟'
...@@ -265,8 +265,9 @@ class Home extends React.Component { ...@@ -265,8 +265,9 @@ class Home extends React.Component {
}; };
return ( return (
<div className="home-page"> <div className="home-page">
<div className="home-title">数据概况</div> <div className="data-wrap">
<div className="data-box"> <div className="home-title">数据概况</div>
<div className="data-box">
<div className="data-item"> <div className="data-item">
<div className="header"> <div className="header">
<img className="header-icon" src="https://image.xiaomaiketang.com/xm/wAaFtjeRsM.png" /> <img className="header-icon" src="https://image.xiaomaiketang.com/xm/wAaFtjeRsM.png" />
...@@ -364,65 +365,67 @@ class Home extends React.Component { ...@@ -364,65 +365,67 @@ class Home extends React.Component {
</div> </div>
</div> </div>
</div> </div>
<div className="home-title">学习概况</div> </div>
<div className="study-box"> <div className="study-wrap">
<div className="study-item"> <div className="home-title">学习概况</div>
<div className="study-title">课程学习排行榜</div> <div className="study-box">
<div className="study-header"> <div className="study-item">
<div className="study-tab"> <div className="study-title">课程学习排行榜</div>
<span <div className="study-header">
className={`tab${scheduleType === 'LIVE' ? ' selected' : ''}`} <div className="study-tab">
onClick={() => this.setState({ scheduleType: 'LIVE' }, () => this.getHotCourse())} <span
>直播课</span> className={`tab${scheduleType === 'LIVE' ? ' selected' : ''}`}
<span onClick={() => this.setState({ scheduleType: 'LIVE' }, () => this.getHotCourse())}
className={`tab${scheduleType === 'VOICE' ? ' selected' : ''}`} >直播课</span>
onClick={() => this.setState({ scheduleType: 'VOICE' }, () => this.getHotCourse())} <span
>视频课</span> className={`tab${scheduleType === 'VOICE' ? ' selected' : ''}`}
<span onClick={() => this.setState({ scheduleType: 'VOICE' }, () => this.getHotCourse())}
className={`tab${scheduleType === 'PICTURE' ? ' selected' : ''}`} >视频课</span>
onClick={() => this.setState({ scheduleType: 'PICTURE' }, () => this.getHotCourse())} <span
>图文课</span> className={`tab${scheduleType === 'PICTURE' ? ' selected' : ''}`}
</div> onClick={() => this.setState({ scheduleType: 'PICTURE' }, () => this.getHotCourse())}
<div className="study-select"> >图文课</span>
<span className="select-word">{moment().subtract(timeRange - 1, 'day').format('MM.DD')} ~ {moment().format('MM.DD')}</span> </div>
<Select <div className="study-select">
style={{ width: 88 }} <span className="select-word">{moment().subtract(timeRange - 1, 'day').format('MM.DD')} ~ {moment().format('MM.DD')}</span>
value={timeRange} <Select
onChange={(value) => { style={{ width: 88 }}
this.setState({ timeRange: value }, () => this.getHotCourse()); value={timeRange}
}} onChange={(value) => {
> this.setState({ timeRange: value }, () => this.getHotCourse());
<Option value="7">近7天</Option> }}
<Option value="15">近15天</Option> >
<Option value="30">近30天</Option> <Option value="7">近7天</Option>
</Select> <Option value="15">近15天</Option>
</div> <Option value="30">近30天</Option>
</div> </Select>
{_.isEmpty(list) ? </div>
<div className="study-empty">
<img src="https://image.xiaomaiketang.com/xm/52dmait5Bx.png" />
<div>暂无课程上榜</div>
</div> </div>
: list.map((item, index) => ( {_.isEmpty(list) ?
<div className={`table-item${index % 2 ? '' : ' odd'}`} key={item.id}> <div className="study-empty">
{index < 3 ? <img src="https://image.xiaomaiketang.com/xm/52dmait5Bx.png" />
<span className="table-number"><img src={this.showNumber(index)} className="table-image" /></span> <div>暂无课程上榜</div>
: <span className="table-number">{index + 1}</span> </div>
} : list.map((item, index) => (
<div className="table-data"> <div className={`table-item${index % 2 ? '' : ' odd'}`} key={item.id}>
<div className="table-name"> {index < 3 ?
<Tooltip title={item.courseName}> <span className="table-number"><img src={this.showNumber(index)} className="table-image" /></span>
{item.courseName} : <span className="table-number">{index + 1}</span>
</Tooltip> }
<div className="table-data">
<div className="table-name">
<Tooltip title={item.courseName}>
{item.courseName}
</Tooltip>
</div>
<div className="table-tag">{item.categoryName}</div>
</div> </div>
<div className="table-tag">{item.categoryName}</div> <span className="table-study">{item.studyNum || 0}人已学习</span>
</div> </div>
<span className="table-study">{item.studyNum || 0}人已学习</span> ))
</div> }
)) </div>
} <div className="study-item">
</div>
<div className="study-item">
<div className="study-title">培训计划完成情况 <div className="study-title">培训计划完成情况
<Tooltip overlayClassName="data-plan-tooltip" title="若某人加入多个培训计划,则需完成所有已加入的培训计划后,才视为已完成培训"> <Tooltip overlayClassName="data-plan-tooltip" title="若某人加入多个培训计划,则需完成所有已加入的培训计划后,才视为已完成培训">
<span className="iconfont icon">&#xe61d;</span> <span className="iconfont icon">&#xe61d;</span>
...@@ -461,7 +464,7 @@ class Home extends React.Component { ...@@ -461,7 +464,7 @@ class Home extends React.Component {
<Geom <Geom
type="intervalStack" type="intervalStack"
position="percent" position="percent"
color={['item', ['#FDB513', '#5289FA']]} color={['item', ['#FFBB54', '#2966FF']]}
tooltip={[ tooltip={[
"item*percent", "item*percent",
(item, percent) => { (item, percent) => {
...@@ -504,6 +507,7 @@ class Home extends React.Component { ...@@ -504,6 +507,7 @@ class Home extends React.Component {
<div className="word">完成培训</div> <div className="word">完成培训</div>
</div> </div>
</div> </div>
</div>
</div> </div>
<div className="study-chart"> <div className="study-chart">
<div className="study-title">学习人数与时长 <div className="study-title">学习人数与时长
......
...@@ -12,7 +12,7 @@ const ENUM = { ...@@ -12,7 +12,7 @@ const ENUM = {
UN_START: { UN_START: {
code: 1, code: 1,
title: "待开课", title: "待开课",
color: "#FFB714", color: "#2966FF",
}, },
STARTING: { STARTING: {
code: 2, code: 2,
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* @Description: * @Description:
* @Author: zangsuyun * @Author: zangsuyun
* @Date: 2021-03-19 18:05:23 * @Date: 2021-03-19 18:05:23
* @LastEditors: yuananting * @LastEditors: wufan
* @LastEditTime: 2021-04-15 21:46:41 * @LastEditTime: 2021-05-30 16:48:46
* @Copyright: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyright: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -193,10 +193,10 @@ class Classification extends Component { ...@@ -193,10 +193,10 @@ class Classification extends Component {
className="sider-search" className="sider-search"
placeholder="搜索名称分类" placeholder="搜索名称分类"
onSearch={(value) => { onSearch={(value) => {
// TODO 调用查询分类接口
this.queryCategoryTree(value); this.queryCategoryTree(value);
}} }}
enterButton={<span className="icon iconfont">&#xe832;</span>} enterButton={<span className="icon iconfont">&#xe832;</span>}
style={{width: 230}}
/> />
<div className="sider-btn"> <div className="sider-btn">
<Button <Button
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* @Description: * @Description:
* @Author: zangsuyun * @Author: zangsuyun
* @Date: 2021-03-19 18:16:58 * @Date: 2021-03-19 18:16:58
* @LastEditors: zangsuyun * @LastEditors: wufan
* @LastEditTime: 2021-03-25 19:13:06 * @LastEditTime: 2021-05-30 10:19:47
* @Copyright: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyright: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -25,14 +25,14 @@ ...@@ -25,14 +25,14 @@
} }
.sider-tree { .sider-tree {
width: 266px; width: 244px;
overflow: scroll; overflow: scroll;
height: ~'calc(100vh - 300px)'; height: ~'calc(100vh - 300px)';
.empty-tree-tip { .empty-tree-tip {
text-align: center; text-align: center;
margin-top: 100%; margin-top: 100%;
.empty-tree-btn { .empty-tree-btn {
color: #ffb714; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
} }
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #666666; color: #666666;
width: 260px; width: 234px;
.anticon { .anticon {
color: #666666; color: #666666;
} }
...@@ -52,12 +52,12 @@ ...@@ -52,12 +52,12 @@
white-space: nowrap; white-space: nowrap;
} }
.ant-tree-node-content-wrapper.ant-tree-node-selected { .ant-tree-node-content-wrapper.ant-tree-node-selected {
color: #666666; color: #2966FF;
} }
} }
.ant-tree-treenode-selected:hover::before, .ant-tree-treenode-selected:hover::before,
.ant-tree-treenode-selected::before { .ant-tree-treenode-selected::before {
background: #fffbf1; background: rgba(238, 243, 255, 1);
} }
} }
} }
......
...@@ -30,13 +30,13 @@ ...@@ -30,13 +30,13 @@
} }
.courseware { .courseware {
font-size: 14px; font-size: 14px;
color: #5289fa; color: #2966FF;
line-height: 20px; line-height: 20px;
text-align: right; text-align: right;
cursor: pointer; cursor: pointer;
} }
.quota-icon { .quota-icon {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.operate { .operate {
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
.operate__item { .operate__item {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
margin: 0 8px; margin: 0 8px;
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
} }
} }
.operate-text { .operate-text {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.course-start-end { .course-start-end {
......
...@@ -39,7 +39,7 @@ class WatchData extends React.Component { ...@@ -39,7 +39,7 @@ class WatchData extends React.Component {
<WatchDataHeader <WatchDataHeader
type={ENUM.CourseTypeEnum[type]} type={ENUM.CourseTypeEnum[type]}
courseName={localStorage.getItem("WatchData_CourseName")} courseName={localStorage.getItem("WatchData_CourseName")}
color="#FFB714" color="#2966FF"
/> />
<div className="box"> <div className="box">
......
...@@ -2,110 +2,99 @@ ...@@ -2,110 +2,99 @@
* @Description: * @Description:
* @Author: zangsuyun * @Author: zangsuyun
* @Date: 2021-03-12 10:43:10 * @Date: 2021-03-12 10:43:10
* @LastEditors: zangsuyun * @LastEditors: wufan
* @LastEditTime: 2021-04-10 16:39:30 * @LastEditTime: 2021-05-30 20:36:42
* @Copyright: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyright: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React from "react"; import React from "react"
import KnowledgeBaseFilter from "./components/KnowledgeBaseFilter"; import KnowledgeBaseFilter from "./components/KnowledgeBaseFilter"
import KnowledgeBaseOpt from "./components/KnowledgeBaseOpt"; import KnowledgeBaseOpt from "./components/KnowledgeBaseOpt"
import KnowledgeBaseList from "./components/KnowledgeBaseList"; import KnowledgeBaseList from "./components/KnowledgeBaseList"
import Classification from "./components/Classification"; import Classification from "./components/Classification"
import KnowledgeAPI from "@/data-source/knowledge/request-api"; import KnowledgeAPI from "@/data-source/knowledge/request-api"
import User from "@/common/js/user"; import User from "@/common/js/user"
export default class KnowledgeBase extends React.Component { export default class KnowledgeBase extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props)
this.state = { this.state = {
query: { query: {
size: 10, size: 10,
current: 1, current: 1,
storeId: User.getStoreId(), storeId: User.getStoreId(),
categoryId: 0, categoryId: 0
}, },
dataSource: [], // 知识库列表 dataSource: [], // 知识库列表
totalCount: 0, // 知识库数据总条数 totalCount: 0, // 知识库数据总条数
categoryId: '0', categoryId: "0",
updateCategoryFlag: false, updateCategoryFlag: false
}; }
} }
componentWillMount() { componentWillMount() {
// 获取知识库列表 // 获取知识库列表
this.handleFetchScheduleList(); this.handleFetchScheduleList()
// this.getCategoryTree() // this.getCategoryTree()
} }
getSelectedCategoryId = (categoryId) => { getSelectedCategoryId = (categoryId) => {
this.setState({ this.setState({
categoryId, categoryId
}); })
this.handleFetchScheduleList({ categoryId,current:1 }); this.handleFetchScheduleList({ categoryId, current: 1 })
}; }
// 更新分类树 // 更新分类树
updateCategoryTree = () => { updateCategoryTree = () => {
this.setState({ this.setState({
updateCategoryFlag: !this.state.updateCategoryFlag, updateCategoryFlag: !this.state.updateCategoryFlag
}); })
}; }
// 获取知识库列表 // 获取知识库列表
handleFetchScheduleList = (_query = {},flag = true) => { handleFetchScheduleList = (_query = {}, flag = true) => {
const query = { const query = {
...this.state.query, ...this.state.query,
..._query, ..._query
}; }
// 更新请求参数 // 更新请求参数
this.setState({ query }); this.setState({ query })
flag && KnowledgeAPI.queryPageKnowledgeForManager(query).then((res) => { flag &&
// KnowledgeAPI.videoSchedulePage(query).then((res) => { KnowledgeAPI.queryPageKnowledgeForManager(query).then((res) => {
const { result = {} } = res || {}; // KnowledgeAPI.videoSchedulePage(query).then((res) => {
const { records = [], total = 0 } = result; const { result = {} } = res || {}
this.setState({ const { records = [], total = 0 } = result
dataSource: records, this.setState({
totalCount: Number(total), dataSource: records,
}); totalCount: Number(total)
}); })
}; })
}
render() { render() {
const { const { dataSource, totalCount, query, categoryId, updateCategoryFlag } = this.state
dataSource,
totalCount,
query,
categoryId,
updateCategoryFlag,
} = this.state;
return ( return (
<div className="page"> <div className='page'>
<div className="content-header">知识库</div> <div className='content-header'>知识库</div>
<div className="box" style={{ display: "flex" }}> <div className='box' style={{ display: "flex" }}>
{/* 搜索模块 */} {/* 搜索模块 */}
<div className="left" style={{ width: 245 }}> <div className='left' style={{ width: 245 }}>
<Classification <Classification updateCategoryFlag={updateCategoryFlag} categoryId={categoryId} getSelectedCategoryId={this.getSelectedCategoryId} />
updateCategoryFlag={updateCategoryFlag}
categoryId={categoryId}
getSelectedCategoryId={this.getSelectedCategoryId}
/>
</div> </div>
<div <div
className="liner" className="liner"
style={{ backgroundColor: "rgb(238, 238, 238)", width: 0.5, margin: "1px 16px 1px 2px" }} style={{ backgroundColor: "rgb(238, 238, 238)", width: 0.5, margin: "1px 16px 1px 2px" }}
></div> ></div>
<div className="right" style={{ width: "calc(100% - 285px)" }}> <div className="right" style={{ width: "calc(100% - 265px)" }}>
<KnowledgeBaseFilter onChange={this.handleFetchScheduleList} /> <KnowledgeBaseFilter onChange={this.handleFetchScheduleList} />
{/* 操作模块 */} {/* 操作模块 */}
{categoryId != 0 && <KnowledgeBaseOpt {categoryId !== "0" && (
onChange={this.handleFetchScheduleList} <KnowledgeBaseOpt onChange={this.handleFetchScheduleList} updateCategoryTree={this.updateCategoryTree} categoryId={categoryId} />
updateCategoryTree={this.updateCategoryTree} )}
categoryId={categoryId}
/>}
{/* 知识库列表模块 */} {/* 知识库列表模块 */}
<KnowledgeBaseList <KnowledgeBaseList
...@@ -119,6 +108,6 @@ export default class KnowledgeBase extends React.Component { ...@@ -119,6 +108,6 @@ export default class KnowledgeBase extends React.Component {
</div> </div>
</div> </div>
</div> </div>
); )
} }
} }
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* @Description: * @Description:
* @Author: zangsuyun * @Author: zangsuyun
* @Date: 2021-03-13 14:38:49 * @Date: 2021-03-13 14:38:49
* @LastEditors: zangsuyun * @LastEditors: wufan
* @LastEditTime: 2021-03-16 15:20:51 * @LastEditTime: 2021-05-30 10:08:02
* @Copyright: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyright: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -22,7 +22,7 @@ const courseStateShow = { ...@@ -22,7 +22,7 @@ const courseStateShow = {
UN_START: { UN_START: {
code: 1, code: 1,
title: "待开课", title: "待开课",
color: "#FFB714", color: "#FFB129",
}, },
STARTING: { STARTING: {
code: 2, code: 2,
...@@ -107,6 +107,7 @@ class LiveList extends React.Component { ...@@ -107,6 +107,7 @@ class LiveList extends React.Component {
cursor: "pointer", cursor: "pointer",
color: "#bfbfbf", color: "#bfbfbf",
fontSize: "14px", fontSize: "14px",
fontWeight:"400"
}} }}
> >
&#xe61d; &#xe61d;
......
...@@ -71,13 +71,13 @@ ...@@ -71,13 +71,13 @@
} }
.courseware { .courseware {
font-size: 14px; font-size: 14px;
color: #5289fa; color: #2966FF;
line-height: 20px; line-height: 20px;
text-align: right; text-align: right;
cursor: pointer; cursor: pointer;
} }
.quota-icon { .quota-icon {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.operate { .operate {
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
.operate__item { .operate__item {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
margin: 0 8px; margin: 0 8px;
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
} }
} }
.operate-text { .operate-text {
color: #5289fa; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.course-start-end { .course-start-end {
...@@ -125,42 +125,10 @@ ...@@ -125,42 +125,10 @@
} }
} }
.add-course-modal { .add-course-modal {
.ant-tabs-top > .ant-tabs-nav::before {
border-bottom: 0px;
}
.ant-tabs-nav-list {
margin: 0 auto;
flex:none !important
}
.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
font-weight: normal;
border-bottom: 0px;
}
.ant-tabs-nav .ant-tabs-tab {
padding: 6px 12px !important;
margin: 0;
border: 0.5px solid #e8e8e8;
font-size: 14px !important;
color: #999;
&:nth-child(1) {
border-radius: 4px 0px 0px 4px;
}
&:nth-child(3) {
border-radius: 0px 4px 4px 0px;
}
}
.ant-tabs-nav .ant-tabs-tab-active { .ant-tabs-nav .ant-tabs-tab-active {
border: 1px solid #ffb714; color: #2966ff;
color: #ffb714;
}
.ant-tabs-top .ant-tabs-ink-bar-animated:after {
height: 0;
} }
.ant-modal-content tr > td {
.ant-modal-content tr > td{ padding: 12px 8px !important;
padding:12px 8px !important;
} }
} }
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
* @Description: * @Description:
* @Author: zangsuyun * @Author: zangsuyun
* @Date: 2021-03-13 11:48:24 * @Date: 2021-03-13 11:48:24
* @LastEditors: zangsuyun * @LastEditors: wufan
* @LastEditTime: 2021-04-01 11:58:46 * @LastEditTime: 2021-05-30 10:08:09
* @Copyright: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyright: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -105,6 +105,7 @@ class VideoList extends React.Component { ...@@ -105,6 +105,7 @@ class VideoList extends React.Component {
cursor: "pointer", cursor: "pointer",
color: "#bfbfbf", color: "#bfbfbf",
fontSize: "14px", fontSize: "14px",
fontWeight:"400"
}} }}
> >
&#xe61d; &#xe61d;
......
.personal-info-page{ .personal-info-page{
.box{ .box{
padding: 60px 60px 60px 40px !important; padding: 24px 60px 60px 40px !important;
} }
.label{ .label{
width:84px; width:84px;
...@@ -57,4 +57,8 @@ ...@@ -57,4 +57,8 @@
margin-left:20px; margin-left:20px;
} }
} }
.save-btn {
margin-left: 92px;
}
} }
\ No newline at end of file
/* /*
* @Author: zhangleyuan * @Author: zhangleyuan
* @Date: 2020-11-27 15:06:31 * @Date: 2020-11-27 15:06:31
* @LastEditors: zangsuyun * @LastEditors: wufan
* @LastEditTime: 2021-03-22 13:55:24 * @LastEditTime: 2021-05-28 15:31:06
* @Description: 描述一下 * @Description: 描述一下
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -181,7 +181,7 @@ console.log('User.getStoreType()',User.getStoreType()); ...@@ -181,7 +181,7 @@ console.log('User.getStoreType()',User.getStoreType());
</Button> </Button>
</div> </div>
)} )}
<div> <div className="save-btn">
<Button <Button
type="primary" type="primary"
onClick={() => { onClick={() => {
......
.add-plan-page { .add-plan-page {
position:relative !important; position:relative !important;
.box { .box {
margin-bottom: 66px !important; margin-bottom: 52px !important;
padding-bottom: 40px!important;
.add-plan-page__form { .add-plan-page__form {
margin-top: 16px; margin-top: 16px;
.title { .title {
...@@ -18,13 +19,14 @@ ...@@ -18,13 +19,14 @@
} }
.footer { .footer {
position: fixed; position: fixed;
left: 196px;
bottom: 0; bottom: 0;
height: 58px; height: 58px;
width: 100%; width: ~'calc(100% - 218px)';
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
padding-right: 252px; padding-right: 72px;
background: #fff; background: #fff;
border-top: 1px solid #E8E8E8; border-top: 1px solid #E8E8E8;
z-index: 9999; z-index: 9999;
......
...@@ -10,7 +10,7 @@ import Bus from '@/core/bus'; ...@@ -10,7 +10,7 @@ import Bus from '@/core/bus';
import './LearningData.less'; import './LearningData.less';
const userRole = User.getUserRole(); const userRole = User.getUserRole();
const defaultCover = 'https://image.xiaomaiketang.com/xm/YNfi45JwFA.png'; const defaultCover = 'https://image.xiaomaiketang.com/xm/rEAetaTEh3.png';
class LearningData extends React.Component { class LearningData extends React.Component {
constructor(props) { constructor(props) {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
font-weight:normal; font-weight:normal;
} }
.plan-info{ .plan-info{
margin:16px; margin-bottom:8px;
padding:16px; padding:16px;
background: #FFF; background: #FFF;
display:flex; display:flex;
......
/* /*
* @Author: zhangleyuan * @Author: zhangleyuan
* @Date: 2021-02-20 16:13:39 * @Date: 2021-02-20 16:13:39
* @LastEditors: zhangleyuan * @LastEditors: fusanqiasng
* @LastEditTime: 2021-03-10 18:38:50 * @LastEditTime: 2021-05-23 23:59:43
* @Description: 描述一下 * @Description: 描述一下
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from 'react'
import PlanFilter from './components/PlanFilter'; import PlanFilter from './components/PlanFilter'
import PlanOpt from './components/PlanOpt'; import PlanOpt from './components/PlanOpt'
import PlanList from './components/PlanList'; import PlanList from './components/PlanList'
import PlanService from "@/domains/plan-domain/planService"; import PlanService from '@/domains/plan-domain/planService'
import User from '@/common/js/user'; import User from '@/common/js/user'
function PlanPage() { function PlanPage() {
const [planListData, setPlanListData] = useState([])
const [planListData, setPlanListData] = useState([]); const [query, setQuery] = useState({
const [query,setQuery] = useState({ current: 1,
current:1, size: 10
size:10, })
});
useEffect(() => { useEffect(() => {
handleFetchPlanList(); function handleFetchPlanList(_query) {
}, [query]); const params = {
const [totalCount,setTotalCount] = useState(0); ...query,
function queryChange(_query){ ..._query,
const params = { storeUserId: User.getStoreUserId()
...query, }
..._query, //动态获取计划列表
}; PlanService.getTrainingPlanPage(params).then((res) => {
setQuery(params); const {
} result: { records = [], total }
function handleFetchPlanList(_query){ } = res
setPlanListData(records)
setTotalCount(total)
})
}
handleFetchPlanList()
}, [query])
const [totalCount, setTotalCount] = useState(0)
function queryChange(_query) {
const params = { const params = {
...query, ...query,
..._query, ..._query
storeUserId:User.getStoreUserId() }
}; setQuery(params)
//动态获取计划列表
PlanService.getTrainingPlanPage(params).then((res) => {
const { result: { records = [], total } } = res;
setPlanListData(records);
setTotalCount(total);
})
} }
return ( return (
<div className="page"> <div className='page'>
<div className="content-header">培训计划</div> <div className='content-header'>培训计划</div>
<div className="box"> <div className='box'>
<PlanFilter onChange={queryChange}/> <PlanFilter onChange={queryChange} />
<PlanOpt/> <PlanOpt />
<PlanList <PlanList planListData={planListData} query={query} totalCount={totalCount} onChange={queryChange} />
planListData={planListData}
query={query}
totalCount={totalCount}
onChange={queryChange}
/>
</div>
</div> </div>
</div>
) )
} }
export default PlanPage; export default PlanPage
\ No newline at end of file
...@@ -40,13 +40,12 @@ ...@@ -40,13 +40,12 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: contain; object-fit: contain;
border: 1px solid #E8e8e8;
} }
} }
.opt-btns{ .opt-btns{
.default-btn { .default-btn {
margin:0 8px; margin:0 8px;
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.disabled { &.disabled {
color: #CCC; color: #CCC;
......
...@@ -134,18 +134,19 @@ class EmployeeShareData extends React.Component { ...@@ -134,18 +134,19 @@ class EmployeeShareData extends React.Component {
) )
} }
}, },
{ //产品暂时性隐藏
title: '手机号', // {
key: 'storeUserPhone', // title: '手机号',
dataIndex: 'storeUserPhone', // key: 'storeUserPhone',
render: (val, record) => { // dataIndex: 'storeUserPhone',
return ( // render: (val, record) => {
<div> // return (
{val} // <div>
</div> // {val}
) // </div>
} // )
}, // }
// },
{ {
title: '最近分享成功时间', title: '最近分享成功时间',
key: 'recentlyForwardTime', key: 'recentlyForwardTime',
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
} }
.operate-item{ .operate-item{
font-size:14px; font-size:14px;
color:#5289FA; color:#2966FF;
cursor: pointer; cursor: pointer;
} }
.learn-num{ .learn-num{
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: zhangleyuan * @Author: zhangleyuan
* @Date: 2021-02-20 16:46:46 * @Date: 2021-02-20 16:46:46
* @LastEditors: wufan * @LastEditors: wufan
* @LastEditTime: 2021-05-13 16:36:43 * @LastEditTime: 2021-05-14 18:12:50
* @Description: 描述一下 * @Description: 描述一下
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -131,7 +131,7 @@ function PlanList(props) { ...@@ -131,7 +131,7 @@ function PlanList(props) {
<span className="operate-text">更多</span> <span className="operate-text">更多</span>
<span <span
className="iconfont icon" className="iconfont icon"
style={{ color: "#5289FA" }} style={{ color: "#2966FF" }}
> >
&#xe824; &#xe824;
</span> </span>
......
...@@ -37,14 +37,14 @@ ...@@ -37,14 +37,14 @@
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
.operate-text { .operate-text {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
} }
.operate { .operate {
display: flex; display: flex;
&__item { &__item {
color: #5289FA; color: #2966FF;
cursor: pointer; cursor: pointer;
&.split { &.split {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
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