Commit 7139b9a3 by yanglang123

修改评论

parent fc66fc2d
{
"appid": "wxcef7a1d8753d619b",
"compileType": "miniprogram",
"libVersion": "3.6.3",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"coverView": true,
"es6": true,
"postcss": true,
"minified": true,
"enhance": true,
"showShadowRootInWxmlPanel": true,
"packNpmRelationList": [],
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}
},
"condition": {},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
},
"simulatorPluginLibVersion": {}
}
\ No newline at end of file
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "saas-weichat",
"setting": {
"compileHotReLoad": true
}
}
\ No newline at end of file
......@@ -552,7 +552,7 @@ class App extends React.Component {
selectedIcon={
<IconfontD code={"iconhometabbar-training-selected"} style={{ fontSize: 48 }} />
}
title={<span>{intl.get("TrainingProgram2") || "项目"}</span>}
title={<span>{intl.get("TrainingProgram2") || "活动"}</span>}
key="train"
selected={this.state.selectedTab === 'menutrain'}
onPress={() => {
......
......@@ -177,7 +177,6 @@ class TrainReviewList extends Component {
onEndReached={this.onEndReached}
isLoading={this.state.isLoading}
page={this.props.page}
listStyle={-150}
footText={intl.get('PublishKey47')||'没有更多了'}
/>
<div className="train-footer-box">
......
import Network from '../../util/fetchUtil';
import API from '../../util/urlconfig';
export const MyCollectionSearch = 'MyCollectionSearch';
export const MyCollectionMore = 'MyCollectionMore';
export const MyCaseCollectionList = "MyCaseCollectionList";
export const MyCaseCollectionListMore = "MyCaseCollectionListMore";
export const myCollectionSearchAction = params => (dispatch, getState) => {
let state = getState();
let url = API.MY_COLLECTION + '?pageNo=1&pageSize=' + state.myCollection.pageSize
if (params.hasOwnProperty('name')) {
url = url + '&name=' + params.name
}
Network.get(url,
response => {
console.log(response.data)
dispatch({
type: MyCollectionSearch, data:
{
list: response.data,
name: params.name ? params.name : '',
page: 1,
pageSize: state.myCollection.pageSize,
hasMore: response.data.length === state.myCollection.pageSize
}
})
}
)
}
export const myCollectionMoreAction = params => (dispatch, getState) => {
let state = getState();
let url = API.MY_COLLECTION + '?pageNo=' + params.page + '&pageSize=' + state.myCollection.pageSize
if (params.hasOwnProperty('name') && params.name !== '') {
url = url + '&name=' + params.name
}
Network.get(url,
response => {
console.log(response.data)
dispatch({
type: MyCollectionMore, data:
{
list: [...state.myCollection.list, ...response.data],
page: params.page,
hasMore: response.data.length === state.myCollection.pageSize
}
})
}
)
}
/**
* 我的作品收藏
* @param {*} caseCollectionUrl
* @param {*} caseCollectionParams
*/
export const myCaseCollectionList = params => (dispatch, getState) => {
let state = getState();
let url = API.myCaseFavorites;
Network.getNetwork(url, {pageNo: 1, pageSize: 10, name: params.name}, (response)=>{
console.log("myCaseCollectionList-response", response);
dispatch({
type: MyCaseCollectionList,
data: {
caseList: response.data.records,
pageNo: 1,
hasCaseMore: response.data.records.length == state.myCollection.pageSize
}
});
});
}
export const myCaseCollectionListMore = params => (dispatch, getState) => {
let state = getState();
let url = API.myCaseFavorites;
let pageNo = state.myCollection.pageNo;
let pageSize = state.myCollection.pageSize;
Network.getNetwork(url, {pageNo: pageNo + 1, pageSize: pageSize}, (response)=>{
console.log("MyCaseCollectionListMore-response", response);
dispatch({
type: MyCaseCollectionListMore,
data: {
caseList: [...state.myCollection.caseList, ...response.data.records],
pageNo: pageNo + 1,
hasCaseMore: response.data.records.length == pageSize
}
});
});
}
\ No newline at end of file
import { MyCollectionSearch, MyCollectionMore, MyCaseCollectionList, MyCaseCollectionListMore } from './action'
const initialState = {
page: 1,
pageSize: 10,
name: '',
list: [],
hasMore:true,
pageNo: 1,
hasCaseMore: true,
caseList: [],
};
const myCollection = (state = initialState, action) => {
switch (action.type) {
case MyCollectionSearch:
return Object.assign({}, action.data)
break
case MyCollectionMore:
return Object.assign({}, state, action.data)
break
case MyCaseCollectionList:
return Object.assign({}, state, action.data);
case MyCaseCollectionListMore:
return Object.assign({}, state, action.data);
default:
return state
}
}
export default myCollection;
import React, { Component } from 'react';
import React, { Component } from "react";
import "./style.less";
import defaultIcon from '../../../common/iconImage/index-btn-icon.png';
import defaultIcon from "../../../common/iconImage/index-btn-icon.png";
import SimpleBar from "simplebar-react";
import "simplebar/dist/simplebar.min.css";
class IndexBtnScroll extends Component {
constructor(props) {
super(props)
}
componentDidMount() {
}
renderBtnByList = () => {
const { list, handleClick } = this.props;
let listLength = list.length;
let result = [];
if (listLength <= 3) {
result = list.map((item, index) => {
return <IndexBtnItem
key={index}
col={3}
data={item}
paddingBottom={40}
onClick={() => handleClick(item)}
/>;
})
} else if (listLength <= 4) {
result = list.map((item, index) => {
return <IndexBtnItem
key={index}
col={4}
data={item}
paddingBottom={40}
onClick={() => handleClick(item)}
/>;
})
} else {
result = list.map((item, index) => {
return <IndexBtnItem
key={index}
col={5}
data={item}
paddingBottom={
(listLength > 5 && listLength < 10) || (listLength > 10 && index >= Math.ceil(listLength / 2)) ?
16 : 40
}
onClick={() => handleClick(item)}
/>;
})
}
return result;
}
render() {
const { list } = this.props;
let listLength = list.length;
console.log("首页按钮数据", list);
if (listLength <= 5 || listLength == 10) {
return <div className="index-btn-scroll-container">
<div className="index-btn-scroll-item-container">
{this.renderBtnByList()}
</div>
</div>;
} else {
let itemWidth = (document.body.clientWidth - 60) / 5;
let scrollWidth = listLength < 10 ? listLength * itemWidth : Math.ceil(listLength / 2) * itemWidth;
let paddingBottom = (listLength > 5 && listLength < 10) || (listLength > 10) ? 16 : 0;
let scrollWrapHeight = listLength > 10 ? 348 : 174;
return <div className="index-btn-scroll-container" style={{ paddingBottom }}>
<div className="index-simple-scroll-bar-wrap" style={{ height: scrollWrapHeight }}>
<SimpleBar
className="index-btn-scroll-item-container"
id="index-simple-scroll-bar-id"
autoHide={false}
style={{ height: scrollWrapHeight + 20 }}
>
{
listLength < 10 ?
<div className="index-btn-scroll-single-wrap-container"
style={{ width: scrollWidth }}>
{this.renderBtnByList()}
</div> :
<div className="index-btn-scroll-two-wrap-container"
style={{ width: scrollWidth }}>
{this.renderBtnByList()}
</div>
}
</SimpleBar>
</div>
</div>;
}
constructor(props) {
super(props);
}
componentDidMount() {}
renderBtnByList = () => {
const { list, handleClick } = this.props;
let listLength = list.length;
let result = [];
result = list.map((item, index) => {
return (
<IndexBtnItem
key={index}
data={item}
paddingBottom={
(listLength > 5 && listLength < 10) ||
(listLength > 10 && index >= Math.ceil(listLength / 2))
? 16
: 40
}
onClick={() => handleClick(item)}
/>
);
});
return result;
};
render() {
const { list } = this.props;
let listLength = list.length;
console.log("首页按钮数据", list);
if (listLength <= 5 || listLength == 10) {
return (
<div className="index-btn-scroll-container">
<div className="index-btn-scroll-item-container">
{this.renderBtnByList()}
</div>
</div>
);
} else {
let paddingBottom =
(listLength > 5 && listLength < 10) || listLength > 10 ? 16 : 0;
return (
<div className="index-btn-scroll-container" style={{ paddingBottom }}>
<div className="index-simple-scroll-bar-wrap">
<div
className="index-btn-scroll-item-container"
id="index-simple-scroll-bar-id"
autoHide={false}
>
<div
className="index-btn-scroll-single-wrap-container"
style={{ width: "100%" }}
>
{this.renderBtnByList()}
</div>
</div>
</div>
</div>
);
}
}
}
export default IndexBtnScroll;
const IndexBtnItem = ({ data, paddingBottom, onClick }) => {
let containerWidth = document.body.clientWidth - 60;
let itemWidth = "25%";
const IndexBtnItem = ({ data, col, paddingBottom, onClick }) => {
let containerWidth = document.body.clientWidth - 60;
let itemWidth = col == 3 ? containerWidth / 3 : col == 4 ? containerWidth / 4 : containerWidth / 5;
return <div className="index-btn-scroll-common-item-container"
style={{ width: itemWidth, paddingBottom }}
onClick={onClick}
return (
<div
className="index-btn-scroll-common-item-container"
style={{ width: itemWidth, paddingBottom }}
onClick={onClick}
>
<div className="index-btn-item-image">
<img src={data.imgPath || defaultIcon} alt="" />
</div>
<div className="index-btn-item-text">
{data.showName}
</div>
</div>;
}
\ No newline at end of file
<div className="index-btn-item-image">
<img src={data.imgPath || defaultIcon} alt="" />
</div>
<div className="index-btn-item-text">{data.showName}</div>
</div>
);
};
.singleLineOverflow {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.index-btn-scroll-container {
width: 100%;
padding: 16px 30px 0 30px;
background-color: #f5f5f5;
}
.index-btn-scroll-container .index-simple-scroll-bar-wrap {
width: 100%;
overflow: hidden;
}
.index-btn-scroll-container #index-simple-scroll-bar-id .simplebar-track {
left: 45%;
right: 45%;
background-color: rgba(66, 133, 244, 0.3);
height: 8px;
border-radius: 8px;
bottom: 20px;
}
.index-btn-scroll-container #index-simple-scroll-bar-id .simplebar-scrollbar {
top: 0;
}
.index-btn-scroll-container #index-simple-scroll-bar-id .simplebar-scrollbar:before {
background-color: #4285f4;
opacity: 1;
height: 8px;
border-radius: 8px;
}
.index-btn-scroll-container .index-btn-scroll-item-container {
width: 100%;
}
.index-btn-scroll-container .index-btn-scroll-item-container .index-btn-scroll-single-wrap-container {
display: flex;
flex-wrap: wrap;
padding-bottom: 20px;
}
.index-btn-scroll-container .index-btn-scroll-item-container .index-btn-scroll-common-item-container {
vertical-align: middle;
height: 152px;
padding-bottom: 40px;
}
.index-btn-scroll-container .index-btn-scroll-item-container .index-btn-scroll-common-item-container .index-btn-item-image {
width: 100%;
text-align: center;
}
.index-btn-scroll-container .index-btn-scroll-item-container .index-btn-scroll-common-item-container .index-btn-item-image img {
width: 88px;
height: 88px;
border-radius: 100%;
}
.index-btn-scroll-container .index-btn-scroll-item-container .index-btn-scroll-common-item-container .index-btn-item-text {
width: 100%;
height: 32px;
text-align: center;
line-height: 32px;
font-size: 24px;
color: #333;
margin-top: 16px;
padding: 0 10px;
}
......@@ -39,17 +39,14 @@
.index-btn-scroll-single-wrap-container {
max-height: 176px;
padding-bottom: 20px;
}
.index-btn-scroll-two-wrap-container {
max-height: 352px;
display: flex;
flex-wrap: wrap;
padding-bottom: 20px;
}
.index-btn-scroll-common-item-container {
display: inline-block;
vertical-align: middle;
height: 152px;
padding-bottom: 40px;
......
......@@ -147,9 +147,7 @@ class MyIntegral extends Component {
render() {
const { pointTypeVisible, pointTypeList, hasMore, dataSoS, currentSelectedType } = this.state;
console.log(this.props.dataSource, 'ssssssssssssss------------', pointTypeVisible)
const row = (rowData, sectionID, rowID) => {
// console.log('sectionID', rowData, sectionID, rowID)
return (
......@@ -235,7 +233,6 @@ class MyIntegral extends Component {
// </Sticky>
// </StickyContainer>
onEndReached={this.onEndReached}
page={this.props.page}
/> : <NoData text={(intl.get("NoDataYet") || "暂无数据")} />}
</div>
......

66.2 KB | W: | H:

35.1 KB | W: | H:

src/components/menume/image/menumeBg.png
src/components/menume/image/menumeBg.png
src/components/menume/image/menumeBg.png
src/components/menume/image/menumeBg.png
  • 2-up
  • Swipe
  • Onion skin
.singleLineOverflow {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.my-menu-body {
width: 100%;
background: #f7f7f7;
}
.my-menu-body .header-info-box {
padding: 16px 30px;
background: linear-gradient(180deg, #f8f8f8 0%, #f8f8f8 32%, #ffffff 39%, #ffffff 100%);
}
.my-menu-body .header-info-box .personal-info-main {
background: url("image/menumeBg.png") no-repeat;
background-size: 100%;
box-shadow: 0px 2px 12px 2px rgba(0, 0, 0, 0.1);
border-radius: 10px;
height: 364px;
padding: 34px 30px;
position: relative;
}
.my-menu-body .header-info-box .personal-info-main .playcard-entry {
width: 128px;
height: 52px;
background: linear-gradient(138deg, #ffb73d 0%, #ff9948 100%);
box-shadow: 0px 2px 16px 0px rgba(255, 158, 71, 0.25);
border-radius: 26px;
line-height: 52px;
text-align: center;
position: absolute;
z-index: 999;
right: 30px;
top: 34px;
}
.my-menu-body .header-info-box .personal-info-main .playcard-entry .playcard-icon {
width: 30px;
height: 32px;
margin: 4px;
padding-top: 4px;
vertical-align: top !important;
}
.my-menu-body .header-info-box .personal-info-main .playcard-entry .playcard-text {
font-size: 28px;
font-weight: 500;
color: #ffffff;
margin: 4px;
position: relative;
top: -2px;
}
.my-menu-body .header-info-box .personal-info-main .personal-info {
width: 100%;
padding-left: 100px;
padding-right: 130px;
position: relative;
}
.my-menu-body .header-info-box .personal-info-main .personal-info .personal-img {
position: absolute;
left: 0;
top: 0;
width: 100px;
height: 100px;
border-radius: 50%;
}
.my-menu-body .header-info-box .personal-info-main .personal-info .personal-right {
margin-left: 16px;
}
.my-menu-body .header-info-box .personal-info-main .personal-info .personal-right .personal-name {
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.my-menu-body .header-info-box .personal-info-main .personal-info .personal-right .personal-name .name {
font-size: 36px;
font-weight: 600;
color: #ffffff;
display: inline-block;
max-width: 80%;
overflow: hidden;
text-overflow: ellipsis;
}
.my-menu-body .header-info-box .personal-info-main .personal-info .personal-right .personal-name .position {
font-size: 24px;
font-weight: 400;
color: #ffffff;
margin: 14px;
}
.my-menu-body .header-info-box .personal-info-main .personal-info .personal-right .company-name {
font-size: 24px;
font-weight: 400;
color: #ffffff;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.my-menu-body .header-info-box .personal-info-main .personal-activity {
display: flex;
justify-content: center;
margin-top: 40px;
}
.my-menu-body .header-info-box .personal-info-main .personal-activity .activity-item {
display: flex;
align-items: center;
justify-content: center;
flex: 1;
}
.my-menu-body .header-info-box .personal-info-main .personal-activity .activity-item .item-icon {
width: 40px;
height: 40px;
}
.my-menu-body .header-info-box .personal-info-main .personal-activity .activity-item .item-name {
font-size: 24px;
font-weight: 400;
color: #ffffff;
margin: 4px;
}
.my-menu-body .header-info-box .personal-info-main .personal-activity .activity-item .item-count {
font-size: 24px;
font-weight: 400;
color: #ffffff;
margin: 4px;
}
.my-menu-body .header-info-box .personal-info-main .personal-activity .activity-item:nth-child(1) {
border-right: 1px solid #fff;
}
.my-menu-body .header-info-box .study-record-info {
height: 240px;
border-radius: 10px ;
background: #ffffff;
box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.1);
margin: -36px 20px 0 20px;
padding: 16px 20px 20px 20px;
position: relative;
top: -30px;
}
.my-menu-body .header-info-box .study-record-info .study-record-top .record-title {
font-size: 28px;
font-weight: 500;
color: #333;
}
.my-menu-body .header-info-box .study-record-info .study-record-top .record-date {
font-size: 24px;
font-family: HelveticaNeue;
color: #333;
float: right;
}
.my-menu-body .header-info-box .study-record-info .study-record-top .record-date .date-param {
margin: 20px;
}
.my-menu-body .header-info-box .study-record-info .study-record-top .record-date .show-icon {
display: inline-block;
width: 0;
height: 0;
border-width: 10px;
border-style: solid;
overflow: hidden;
font-size: 0;
line-height: 0;
vertical-align: top;
border-color: white;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;
margin-top: 14px;
}
.my-menu-body .header-info-box .study-record-info .study-record-buttom {
display: flex;
flex-wrap: wrap;
}
.my-menu-body .header-info-box .study-record-info .study-record-buttom .record-item {
width: 50%;
}
.my-menu-body .header-info-box .study-record-info .study-record-buttom .record-item .record-count {
font-size: 48px;
font-weight: 500;
color: #333333;
display: inline-block;
position: relative;
top: 10px;
}
.my-menu-body .header-info-box .study-record-info .study-record-buttom .record-item .record-count .unit {
font-size: 24px;
}
.my-menu-body .header-info-box .study-record-info .study-record-buttom .record-item .record-name {
width: 52%;
height: 72px;
line-height: 72px;
font-size: 24px;
font-weight: 400;
display: inline-block;
color: #333333;
}
.my-menu-body .menuGoldMall {
padding: 20px 30px 20px 40px;
height: 140px;
background-color: #fff;
}
.my-menu-body .menuGoldMall .menuChildGoldMall {
width: 100%;
height: 100px;
line-height: 100px;
font-size: 32px;
background-image: url('image/goldBG.png');
border-radius: 10px;
}
.my-menu-body .menuGoldMall .menuChildGoldMall .item-count {
float: right;
color: #000000;
}
.my-menu-body .menuGoldMall .menuChildGoldMall .item-icon {
float: right;
}
.my-menu-body .list-box {
padding: 0 20px;
background-color: #fff;
}
.my-menu-body .list-box .list-item {
height: 120px;
line-height: 120px;
border-bottom: solid 2px #f4f4f4;
font-size: 32px;
}
.my-menu-body .list-box .list-item .item-name {
color: #333333;
margin: 20px;
}
.my-menu-body .list-box .list-item .item-count {
float: right;
color: #c0c0c0;
margin: 0 12px;
}
.my-menu-body .list-box .list-item .item-icon {
float: right;
}
.my-menu-body .list-box .list-item .item-icon .arraw-icon {
position: relative;
top: 8px;
}
.my-menu-body .list-box .list-item:last-child {
border-bottom: unset;
}
.my-menu-body .menume-quit-login {
width: 100%;
height: 116px;
background-color: #f7f7f7;
padding-top: 16px;
}
.my-menu-body .menume-quit-login .menume-quit-login-btn {
height: 84px;
width: 100%;
background-color: #fff;
line-height: 84px;
font-size: 36px;
color: #4285f4;
font-weight: 400;
text-align: center;
}
.date-pick-modal .am-modal {
position: absolute;
bottom: 0;
}
.date-pick-modal .am-modal .date-pick-modal-header {
height: 66px;
font-size: 32px;
width: 100%;
border-bottom: 2px solid #efeff4;
line-height: 66px;
padding: 0 48px;
}
.date-pick-modal .am-modal .date-pick-modal-header .date-pick-concel {
float: left;
color: #999999;
}
.date-pick-modal .am-modal .date-pick-modal-header .date-pick-ok {
float: right;
color: #4285f4;
}
.date-pick-modal .am-modal .date-pick-have-picked {
font-size: 28px;
color: #999999;
display: grid;
grid-template-columns: 40% 20% 40%;
padding: 0 28px;
margin-top: 70px;
position: relative;
height: 56px;
}
.date-pick-modal .am-modal .date-pick-have-picked .isActive {
color: #4285f4;
position: relative;
}
.date-pick-modal .am-modal .date-pick-have-picked .isActive::after {
content: '';
display: inline-block;
position: absolute;
bottom: 0;
left: 0;
right: 0;
border-bottom: 2px solid #4285f4;
}
/*
feature1007
个人中心重写:增加个人dashboard,去掉列表icon,重新布局;
zhouzhongyang20200603
chengming
*/
import React from 'react';
......@@ -22,7 +20,8 @@ import {
import IconFont from '../../common/iconfontcomponent/index';
import intl from "react-intl-universal";
import IconfontD from '../../common/iconfontd'
import MyCollect from './image/MyCollect.png'
import BrowsingHistory from './image/BrowsingHistory.png'
const nameTypeList = [
{ code: "ks", name: intl.get("MyExam") },
{ code: "jf", name: intl.get("MyCredit") },
......@@ -115,7 +114,8 @@ const mapList = {
number: 0,
text: intl.get("menume22") || "我的分享",
url: '/myshare',
}, ms: {
},
ms: {
iconname: 'iconfont bell-o',
name: 'myshare',
color: '#4298d9',
......@@ -491,31 +491,31 @@ class Menume extends React.Component {
</div>
</div>
<div className="personal-activity" >
<div className="activity-item" onClick={() => hashHistory.push(func.routerBefore() + '/myperiod')}>
<IconFont className="item-icon" style={{ fontSize: 56 }} type="icon-mine-studytimer" />
<div className="activity-item" onClick={() => hashHistory.push(func.routerBefore() + '/mycollection')}>
<img src={MyCollect} alt="" className="item-icon"/>
<div className="item-info">
<span className="item-name">{intl.get("period")}</span>
<span className="item-count">{this.numFormat(myActivityInfo.studyCourseDuration)}</span>
<span className="item-name">{intl.get("MyCollect")}</span>
<span className="item-count">{this.numFormat(myActivityInfo.favoriteNum)}</span>
</div>
</div>
<div className="activity-item" onClick={() => hashHistory.push(func.routerBefore() + '/mycollection')}>
<IconFont className="item-icon" style={{ fontSize: 56 }} type="icon-mine-collects" />
<div className="activity-item" onClick={() => hashHistory.push(func.routerBefore() + '/browsingHistory')}>
<img src={BrowsingHistory} alt="" className="item-icon"/>
<div className="item-info">
<span className="item-name">{intl.get("Collect")}</span>
<span className="item-count">{this.numFormat(myActivityInfo.favoriteNum)}</span>
<span className="item-name">{intl.get("BrowsingHistory")}</span>
<span className="item-count">{this.numFormat(myActivityInfo.browsingHistoryNum)}</span>
</div>
</div>
<div className="activity-item" onClick={() => hashHistory.push(func.routerBefore() + '/integral/myintegral')}>
{/* <div className="activity-item" onClick={() => hashHistory.push(func.routerBefore() + '/integral/myintegral')}>
<IconFont className="item-icon" style={{ fontSize: 56 }} type="icon-mine-points" />
<div className="item-info">
<span className="item-name">{intl.get("Point")}</span>
<span className="item-count">{this.numFormat(myActivityInfo.pointNum)}</span>
</div>
</div>
</div> */}
</div>
</div>
<div className="study-record-info">
<div className="study-record-top" >
{/* <div className="study-record-top" >
<span className="record-title" >{intl.get("studyLog") || "学习记录"}</span>
<span className="record-date" onClick={this.toPickDate}>
<span className="date-param">{moment(this.state.currentParam.startDate).format("YYYY-MM-DD")}</span>
......@@ -523,7 +523,7 @@ class Menume extends React.Component {
<span className="date-param">{moment(this.state.currentParam.endDate).format("YYYY-MM-DD")}</span>
<span className="show-icon" />
</span>
</div>
</div> */}
<div className="study-record-buttom">
<div className="record-item">
<div className="record-name">{intl.get("finishCourseNum") || "完成课程数"}</div>
......
......@@ -9,10 +9,11 @@
background: linear-gradient(180deg, rgba(248, 248, 248, 1) 0%, rgba(248, 248, 248, 1) 32%, rgba(255, 255, 255, 1) 39%, rgba(255, 255, 255, 1) 100%);
.personal-info-main {
background: rgba(255, 255, 255, 1);
background: url("./image/menumeBg.png") no-repeat;
background-size: 100%;
box-shadow: 0px 2px 12px 2px rgba(0, 0, 0, 0.1);
border-radius: 10px;
height: 324px;
height: 364px;
padding: 34px 30px;
position: relative;
......@@ -74,7 +75,7 @@
.name {
font-size: 36px;
font-weight: 600;
color: rgba(51, 51, 51, 1);
color: rgb(255, 255, 255);
display: inline-block;
max-width: 80%;
overflow: hidden;
......@@ -84,7 +85,7 @@
.position {
font-size: 24px;
font-weight: 400;
color: rgba(153, 153, 153, 1);
color: rgb(255, 255, 255);
margin: 14px;
}
}
......@@ -92,7 +93,7 @@
.company-name {
font-size: 24px;
font-weight: 400;
color: rgba(51, 51, 51, 1);
color: rgb(255, 255, 255);
width: 100%;
white-space: nowrap;
overflow: hidden;
......@@ -100,80 +101,66 @@
}
}
}
.personal-activity {
display: flex;
justify-content: center;
margin-top: 40px;
.activity-item {
text-align: center;
display: flex;
align-items: center;
justify-content: center;
flex: 1;
.item-icon {
width: 56px;
height: 56px;
width: 40px;
height: 40px;
}
.item-name {
font-size: 24px;
font-weight: 400;
color: rgba(153, 153, 153, 1);
color: rgb(255, 255, 255);
margin: 4px;
}
.item-count {
font-size: 24px;
font-weight: 400;
color: rgba(51, 51, 51, 1);
color: rgb(255, 255, 255);
margin: 4px;
}
}
.activity-item:nth-child(1){
border-right: 1px solid #fff;
}
}
}
.study-record-info {
height: 240px;
// background: linear-gradient(180deg, rgba(67, 67, 67, 1) 0%, rgba(65, 56, 45, 1) 100%);
background: linear-gradient(#434343, #41382D);
border-radius:10px ;
background: rgb(255, 255, 255);
box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.1);
border-radius: 0px 0px 10px 10px;
margin: -36px 20px 0 20px;
padding: 16px 20px 20px 20px;
position: relative;
&::before {
content: '';
position: absolute;
display: inline-block;
width: 10px;
height: 10px;
background-color: rgba(216, 216, 216, 1);
left: -10px;
top: 0px;
}
&::after {
content: '';
position: absolute;
display: inline-block;
width: 10px;
height: 10px;
background-color: rgba(216, 216, 216, 1);
right: -10px;
top: 0px;
}
top: -30px;
.study-record-top {
.record-title {
font-size: 28px;
font-weight: 500;
color: rgba(255, 255, 255, 1);
color: #333;
}
.record-date {
font-size: 24px;
font-family: HelveticaNeue;
color: rgba(205, 205, 205, 1);
color: #333;
float: right;
.date-param {
......@@ -211,7 +198,7 @@
.record-count {
font-size: 48px;
font-weight: 500;
color: rgba(255, 255, 255, 0.95);
color: #333333;
display: inline-block;
position: relative;
top: 10px;
......@@ -229,7 +216,7 @@
font-size: 24px;
font-weight: 400;
display: inline-block;
color: rgba(255, 255, 255, 0.65);
color: #333333;
}
}
}
......@@ -257,11 +244,6 @@
.item-icon {
float: right;
.arraw-icon {
// position: relative;
// top: 8px;
}
}
}
}
......@@ -374,10 +356,6 @@
}
}
.picked-start {}
.picked-end {}
}
}
}
\ No newline at end of file
......@@ -32,13 +32,13 @@ class mehomeNav extends React.Component {
componentDidMount() {
// let store = this.props.store.getState();
let _this = this;
this.props.noReadCount(() => {
_this.setState({
noreadCount: _this.props.readCount
})
})
let appid = sessionStorage.getItem('appid');
// let _this = this;
// this.props.noReadCount(() => {
// _this.setState({
// noreadCount: _this.props.readCount
// })
// })
// let appid = sessionStorage.getItem('appid');
......
.singleLineOverflow {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.news-list-page-container {
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
}
.news-list-page-container .news-list-page-scroll-container {
width: 100%;
background-color: #fff;
}
.news-list-page-container .news-list-page-scroll-container .news-banner-carsouel-container {
width: 100%;
padding: 24px 30px;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container {
width: 100%;
height: 176px;
position: sticky;
background-color: #fff;
left: 0;
top: 0;
z-index: 9;
overflow-y: hidden;
overflow-x: auto;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container .news-classify-list-container-bg {
width: 100%;
height: 88px;
position: absolute;
left: 0;
top: 0;
background-color: #D23A29;
z-index: 1;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container .news-classify-list-scroll-container {
width: max-content;
height: 88px;
position: relative;
z-index: 2;
padding: 0 10px;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container .news-classify-list-scroll-container .news-classify-item-container {
max-width: 324px;
height: 88px;
line-height: 88px;
text-align: center;
margin: 0 25px;
display: inline-block;
vertical-align: middle;
font-size: 32px;
color: #fff;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container .news-classify-list-scroll-container .news-classify-item-container span {
border-bottom: 4px solid #fff;
padding-bottom: 12px;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container .news-third-classify-list-scroll-container {
width: max-content;
height: 60px;
position: relative;
z-index: 2;
padding: 0 10px;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container .news-third-classify-list-scroll-container .news-third-classify-item-container {
max-width: 324px;
height: 60px;
line-height: 60px;
text-align: center;
margin: 0 25px;
display: inline-block;
vertical-align: middle;
font-size: 30px;
color: #666;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
.news-list-page-container .news-list-page-scroll-container .news-classify-list-container .news-third-classify-list-scroll-container .news-third-classify-item-container span {
color: #4285f4;
}
.news-list-page-container .news-list-page-scroll-container .news-item-list-container {
width: 100%;
}
......@@ -17,7 +17,7 @@
.news-classify-list-container {
width: 100%;
height: 88px;
height: 176px;
position: sticky;
background-color: #fff;
left: 0;
......@@ -32,8 +32,7 @@
position: absolute;
left: 0;
top: 0;
background-color: @themeColor;
opacity: 0.05;
background-color: #D23A29;
z-index: 1;
}
.news-classify-list-scroll-container{
......@@ -51,6 +50,30 @@
display: inline-block;
vertical-align: middle;
font-size: 32px;
color:#fff;
font-weight:400;
.singleLineOverflow;
span{
border-bottom: 4px solid #fff;
padding-bottom: 12px;
}
}
}
.news-third-classify-list-scroll-container{
width: max-content;
height: 60px;
position: relative;
z-index: 2;
padding: 0 10px;
.news-third-classify-item-container{
max-width: 324px;
height: 60px;
line-height: 60px;
text-align: center;
margin: 0 25px;
display: inline-block;
vertical-align: middle;
font-size: 30px;
color:#666;
font-weight:400;
.singleLineOverflow;
......
......@@ -160,9 +160,9 @@ class NewsMessage extends Component {
this.props.getNewsMessageList(param2, () => {
console.log("新闻列表接口 ok");
//若存在二级tab则增加一项 所有新闻
if (_this.props.newsMessageList.classifyNews.length > 0) {
_this.props.newsMessageList.classifyNews.unshift({ id: "99", name: "所有新闻" })
}
// if (_this.props.newsMessageList.classifyNews.length > 0) {
// _this.props.newsMessageList.classifyNews.unshift({ id: "99", name: "所有新闻" })
// }
_this.setState({
classifyNews: _this.props.newsMessageList.classifyNews,
......
......@@ -38,11 +38,11 @@
width: 1rem;
}
.new-border {
width: .1rem;
height: .1rem;
width: 0.1rem;
height: 0.1rem;
border-radius: 50%;
background-color: #000000;
margin-right: .1rem;
margin-right: 0.1rem;
}
.new-li {
list-style-type: disc;
......@@ -59,7 +59,7 @@
width: 100%;
color: #000000;
font-size: 0.3rem;
padding: 20px;
padding: 20px 30px;
}
.footerText {
color: #515151;
......@@ -155,16 +155,20 @@
border-radius: 0.16rem;
}
.news-item2-content .news-item2-box .title-span {
display: inline-block;
color: #505050;
display: block;
font-size: 0.32rem;
margin-left: 5%;
margin-top: 5%;
line-height: 1.5;
width: 90%;
font-size: 40px;
font-family: PingFang SC, PingFang SC-400;
font-weight: 400;
color: #000;
line-height: 48px;
}
.news-item2-content .news-item2-box .title-p {
width: 100%;
color: #d2d2d2;
color: #ABABAB;
background-position: center;
background-size: 100%;
border-radius: 0.16rem;
......
......@@ -77,7 +77,7 @@
width: 100%;
color: #000000;
font-size: 0.3rem;
padding: 20px;
padding: 20px 30px;
}
.footerText {
......@@ -173,6 +173,7 @@
background-position: center;
background-size: 100%;
border-radius: 0.16rem;
.news-item2-box{
width: 100%;
min-height: 1.32rem;
......@@ -181,22 +182,21 @@
border-radius: 0.16rem;
.title-span{
display: block;
color: #505050;
font-size: 0.32rem;
margin-left: 5%;
margin-top: 5%;
//bottom: 7%;
width:90%;
font-size: 40px;
font-family: PingFangSC-Regular, PingFang SC;
font-family: PingFang SC, PingFang SC-400;
font-weight: 400;
color: #4A4A4A;
color: #000;
line-height: 48px;
}
.title-p{
width: 100%;
color: #d2d2d2;
color: #ABABAB;
background-position: center;
background-size: 100%;
border-radius: 0.16rem;
......
import * as actions from './NewsMessageResultTypes';
import NetWork from '../../util/fetchUtil';
import API from '../../util/urlconfig';
import {Toast} from 'antd-mobile';
import func from '../../util/commonFunc'
import intl, { init } from "react-intl-universal";
export const trainStepsData=(finished,params,callback)=>{
return dispatch=>{
let url = finished?API.trainStepsFinish:API.trainSteps;
NetWork.post(url, params,
response=>{
// 数据反转
if( response.data.progressVo && response.data.progressVo.courseRecentVos ) {
response.data.progressVo.courseRecentVos.reverse()
}
dispatch({
type:actions.TRAIN_STEPS_DATA_EVENT,
introductionVo:response.data.introductionVo,
contentVo:pacePer(response.data.contentVo),
progressVo:response.data.progressVo,
hasEnrolled:response.data.hasEnrolled
})
if(callback){
callback();
}
}
)
}
};
/**
* 检查资料是否可以下载
* @param needEnroll 是否需要报名
* @param hasEnroll 是否报名成功
* @param projectStartTime 项目开始时间
* @param projectEndTime 项目结束时间
* @param stutas 项目状态
* @param termialType 1、pc端;2、微信端
* @constructor
*/
export const CheckDownloadingStatus = (needEnroll, hasEnroll, projectStartTime, projectEndTime) => {
return dispatch => {
let paramsData = {
needEnroll: needEnroll,
hasEnroll: hasEnroll,
projectStartTime: projectStartTime,
projectEndTime: projectEndTime,
termialType: 2
};
NetWork.getNetwork(API.trainDataLibraryDataStatus, paramsData,
response => {
console.log("response1", response.data);
// dispatch({
// type: actions.CHECK_DOWNLOADING_STATUS,
// });
}
);
}
}
let pacePer=(obj)=> {
//添加百分比ratio
obj.plans.map(item => {
let ratio = 0;
item.activities.map(childItem => {
if (String(childItem.type) === "0") {
if (childItem.finished) {
ratio += 1;
} else {
ratio += 0.5;
}
} else {
if (childItem.finished) {
ratio += 1;
} else {
ratio += 0;
}
}
});
item['ratio'] = Number.parseFloat(ratio / item.activities.length).toFixed(2);
});
return obj;
};
export const getReviewListData=(params, isUpData,callBack)=>{
return dispatch=>{
let urlParams=API.reviewListLink;
if (params) {
let paramsArray = [];
//拼接参数
Object.keys(params).forEach(key => paramsArray.push(key + '=' + params[key]))
if (urlParams.indexOf('?')==-1) {
urlParams += '?' + paramsArray.join('&')
} else {
urlParams += '&' + paramsArray.join('&')
}
}
NetWork.get(urlParams,
response=>{
console.log('评论');
console.log(response);
try{
if(String(response.code)==="1000"){
let reviewPageNo=Number.parseInt(response.data.current)+1;
dispatch({
type:actions.REVIEW_LIST_DATA_EVENT,
reviewListData:response.data.records,
reviewPageNo:reviewPageNo,
isUpData:isUpData,
total:response.data.total,
})
if(callBack){
callBack();
}
}
}catch(e){
console.log(e);
}
})
};
};
//评论
export const commitVerb=(params,callBack)=>{
return dispatch=>{
NetWork.post(API.reviewCommit, params, response=>{
try {
if(Number.parseFloat(response.code)===1000){
dispatch({
type:actions.REVIEW_COMMIT_SUCCESS,
status:1,
});
Toast.info(intl.get("CommentSuccess")||"评论成功");
callBack();
}
}catch (e) {
}
});
}
};
//点赞保存功能
export const laudSaveEnrollEvent=(params,callBack)=>{
return dispatch=>{
NetWork.post(API.trainReviewGood, params, response=>{
try {
if(Number.parseFloat(response.code)===1000){
dispatch({
type:actions.LAUD_SAVE_SUCCESS_EVENT,
status:1,
itemId:params.tpCommentId
});
if(callBack){
callBack();
}
}
}catch (e) {
console.log(e);
}
});
}
};
//报名
export const lessonEnrollEvent=(params,callBack)=>{
return dispatch=>{
NetWork.post(API.courseSignUp, params, response=>{
try {
if(Number.parseInt(response.code)===1000){
Toast.info(intl.get("PublishKey70")||"报名成功");
callBack && callBack();
}else{
Toast.info(intl.get("PublishKey70")||"报名成功");
}
}catch (e) {
console.log(e)
}
});
}
};
export const laudDeleEnrollEvent=(params,callBack)=>{
return dispatch=> {
NetWork.post(API.trainReviewBad, params, response => {
console.log(response);
try {
if (Number.parseFloat(response.code) === 1000) {
if(callBack){
callBack();
}
dispatch({
type: actions.LAUD_DELE_TYPE_EVENT,
status: 0,
itemId: params.tpCommentId
});
}
} catch (e) {
console.log(e);
}
});
}
};
export const reviewReplyList=(params,callBack)=>{
let contactUrl = API.trainReviewReplyLis+'?commentId='+params.commentId+'&pageNo='+params.pageNo+'&pageSize=10';
return dispatch=> {
NetWork.get(contactUrl, response => {
console.log(response,'评论列表');
try {
if (Number.parseFloat(response.code) === 1000) {
dispatch({
type: actions.REVIEW_COMMIT_LIST,
list: response.data.records,
page:{currentPage:params.pageNo,pageTotal: response.data.total, pageNo: response.data.pages, pageSize:response.data.size}
});
callBack();
}
} catch (e) {
console.log(e);
}
});
}
}
export const reviewReplyCommit=(params,callBack)=>{
return dispatch=> {
NetWork.post(API.trainReviewReplyCommit, params, response => {
console.log(response,'提交评论');
try {
if (Number.parseFloat(response.code) === 1000) {
callBack();
}
} catch (e) {
console.log(e);
}
});
}
}
//初始化数据
export const initailData = ()=>{
return dispatch=>{
dispatch({type:actions.INITAIL_TRAIN_DATA});
}
}
export const trainClickLog = (id)=>{
let url = API.trainUrl+"api/trainingProject/tpPlanActivity/view/record/add";
return dispatch =>{
NetWork.post(url,{
"id":id
},(data)=>{});
}
};
export const trainCertificateGet = (data,callback)=>{
let url = API.trainUrl+"api/trainingProject/certificate/grant";
return dispatch =>{
NetWork.post(url,data,(response)=>{
callback(response);
});
}
}
/**
* 请求精选作品详情接口,验证是否可进入
* @param {*} requestUrl
* @param {*} requestData
* @param {*} callback
*/
export function validatePickOutCaseDetail (requestUrl, requestData, callback) {
return dispatch => {
NetWork.getNetwork(requestUrl, requestData, (response)=> {
console.log("trainingStepsAction-response", response);
callback(response);
});
}
}
\ No newline at end of file
import * as actions from './NewsMessageResultTypes';
let initial={
introductionVo:null,
contentVo:{
plans:[]
},
reviewListData:[],
reviewListTotle:0,
hasEnrolled:false,
isMore:false,
reviewReplyListData:[],
reviewReplyPage:0,
progressVo:{},
};
export default (state=initial, action)=>{
switch (action.type){
case actions.TRAIN_STEPS_DATA_EVENT:
return {
...state,
introductionVo:action.introductionVo,
contentVo:Object.assign({},state.contentVo,{plans:action.contentVo.plans || []}),
hasEnrolled:action.hasEnrolled,
progressVo:action.progressVo
};
case actions.REVIEW_LIST_DATA_EVENT:
let reviewDataList=null;
if(action.isUpData){
reviewDataList=state.reviewListData.concat(action.reviewListData);
}else{
reviewDataList=action.reviewListData;
}
return {
...state,
reviewListData:reviewDataList,
reviewPageNo:action.reviewPageNo,
isUpData:action.isUpData,
isMore:JSON.stringify(action.reviewListData)!=="[]",
// isMore:action.reviewListData.length<10,
reviewListTotle:action.total,
};
case actions.LAUD_SAVE_SUCCESS_EVENT:
let successRecords=state.reviewListData;
successRecords.map(item=>{
if(String(item.id)===String(action.itemId)){
item.status=1;
}
});
return {
...state,
reviewListData:successRecords
};
case actions.LAUD_DELE_TYPE_EVENT:
let deleRecords=state.reviewListData;
deleRecords.map(item=>{
if(String(item.id)===String(action.itemId)){
item.status=0;
}
});
return {
...state,
reviewListData:deleRecords
};
case actions.REVIEW_COMMIT_LIST:
let result = [];
if(action.page.currentPage==1){
result = action.list;
}else{
result = [...state.reviewReplyListData,...action.list];
}
return {
...state,
reviewReplyListData:result,
reviewReplyPage:action.page,
reviewListTotle:action.page.pageTotal,
}
case actions.INITAIL_TRAIN_DATA:
return {
...initial
}
default:
return state;
}
}
\ No newline at end of file
//项目简介和详情
export const TRAIN_STEPS_DATA_EVENT="TRAIN_STEPS_DATA_EVENT";
//项目评论
export const REVIEW_LIST_DATA_EVENT="REVIEW_LIST_DATA_EVENT";
//保存点赞
export const LAUD_SAVE_SUCCESS_EVENT="LAUD_SAVE_SUCCESS_EVENT";
//取消点赞
export const LAUD_DELE_TYPE_EVENT="LAUD_DELE_TYPE_EVENT";
//项目评论功能
export const REVIEW_COMMIT_SUCCESS = "REVIEW_COMMIT_SUCCESS";
export const REVIEW_COMMIT_LIST = "REVIEW_COMMIT_LIST";
export const INITAIL_TRAIN_DATA = "INITAIL_TRAIN_DATA";
\ No newline at end of file
......@@ -65,7 +65,6 @@ class RecorderVideo extends Component {
recorder = new Recorder(config);
recorder.onprogress = (params) => {
let dataArray = recorder.getRecordAnalyseData();
console.log('ssssssssssssssss', dataArray)
}
} else {
recorder.stop();
......@@ -88,7 +87,6 @@ class RecorderVideo extends Component {
//绘制波形图
canvsPaint = () => {
let dataArray = recorder.getRecordAnalyseData();
console.log('ssssssssssssssss', dataArray)
}
stopRecorder = () => {
......
......@@ -154,6 +154,8 @@ module.exports = {
"CourseDetails": "Details",
"Collected": "Collected",
"Collect": "Collect",
"MyCollect": "MyCollect",
"BrowsingHistory": "BrowsingHistory",
"CollectSucess": "Added to favorite list!",
"Contents": "Contents",
"Overview": "Overview",
......
......@@ -210,6 +210,7 @@
"RequiredTag": "(必修)",
"mycaselibrary51": "图片加载中",
"mycaselibrary50": "我还没有收藏过内容",
"mycaselibrary55": "我还没有浏览过内容",
"OuterLectuer": "外部讲师",
"mycaselibrary54": "证书详情",
"mycaselibrary53": "下载图片",
......@@ -249,6 +250,8 @@
"ResetPassword": "找回密码",
"VerificationCode": "验证码",
"Collect": "收藏",
"MyCollect": "我的收藏",
"BrowsingHistory": "浏览历史",
"Hours": "小时",
"Review": "复习",
"video": "视频",
......@@ -1543,7 +1546,7 @@
"msg.submited": "该场考试已经提交,不能继续考试",
"ContentRequired": "个必修活动",
"album.biz.error": "专辑服务异常",
"TrainingProgram2": "项目",
"TrainingProgram2": "活动",
"SearchForPostsIManage": "搜索我管理的帖子",
"Name": "姓名:",
"withDrawRemind": "撤回提醒",
......
......@@ -151,6 +151,8 @@
"CourseDetails": "课程详情",
"Collected": "已收藏",
"Collect": "收藏",
"MyCollect": "我的收藏",
"BrowsingHistory": "浏览历史",
"CollectSucess": "收藏成功!",
"Contents": "目录",
"Overview": "简介",
......@@ -765,7 +767,7 @@
"noauthtip": "没有访问权限,请返回首页",
"abumdSubcribeSuc": "订阅成功",
"abumdSubcribeNo": "已取订阅",
"TrainingProgram2": "项目",
"TrainingProgram2": "活动",
"CreditForumInvitation": "发表帖子",
"CreditForumComment": "回复帖子",
"IncompleteExamination": "未完成考试",
......@@ -1281,6 +1283,7 @@
"mycaselibrary48": "暂无附件,确定提交审核?",
"mycaselibrary49": "全部删除",
"mycaselibrary50": "我还没有收藏过内容",
"mycaselibrary55": "我还没有浏览过内容",
"mycaselibrary51": "图片加载中",
"mycaselibrary52": "课程名称/作品名称",
"mycaselibrary53": "下载图片",
......
......@@ -374,6 +374,8 @@ module.exports = {
"VerificationCode": "验证码",
"September": "9月",
"Collect": "收藏",
"MyCollect": "我的收藏",
"BrowsingHistory": "浏览历史",
"Hours": "小时",
"Yes": "确定",
"Forbidden": "禁言",
......@@ -763,7 +765,7 @@ module.exports = {
"msg.current.study.plan.not.start": "当前学习计划时间未到,无法开始学习。",
"ContentRequired": "个必修活动",
"album.biz.error": "专辑服务异常",
"TrainingProgram2": "项目",
"TrainingProgram2": "活动",
"SearchForPostsIManage": "搜索我管理的帖子",
"Name": "姓名",
"withDrawRemind": "撤回提醒",
......@@ -1081,6 +1083,8 @@ module.exports = {
"CourseDetails": "课程详情",
"Collected": "已收藏",
"Collect": "收藏",
"MyCollect": "我的收藏",
"BrowsingHistory": "浏览历史",
"CollectSucess": "收藏成功!",
"Contents": "目录",
"Overview": "简介",
......@@ -1695,7 +1699,7 @@ module.exports = {
"noauthtip": "没有访问权限,请返回首页",
"abumdSubcribeSuc": "订阅成功",
"abumdSubcribeNo": "已取订阅",
"TrainingProgram2": "项目",
"TrainingProgram2": "活动",
"CreditForumInvitation": "发表帖子",
"CreditForumComment": "回复帖子",
"IncompleteExamination": "未完成考试",
......@@ -2211,6 +2215,7 @@ module.exports = {
"mycaselibrary48": "暂无附件,确定提交审核?",
"mycaselibrary49": "全部删除",
"mycaselibrary50": "我还没有收藏过内容",
"mycaselibrary55": "我还没有浏览过内容",
"mycaselibrary51": "图片加载中",
"mycaselibrary52": "课程名称/作品名称",
"mycaselibrary53": "下载图片",
......
......@@ -220,9 +220,14 @@ const CreLesVideo = LazyLoad(() =>
const CreLesMedia = LazyLoad(() =>
import('./components/myLesson/creLesMedia')
);
//我的收藏
const MyCollection = LazyLoad(() =>
import('./components/myCollection/index')
);
//浏览历史
const BrowsingHistory = LazyLoad(() =>
import('./components/browsingHistory/index')
);
//我的学时
const MyPeriod = LazyLoad(() => import('./components/myPeriod/index'));
......@@ -473,7 +478,7 @@ window.dayingcode = "现在是15:02";
window.onhashchange = (e) => {
// console.log("router", e);
autoGetWechatPermission.sameHashNeedReload(e);
// autoGetWechatPermission.sameHashNeedReload(e);
autoGetWechatPermission.checkVisible();
autoGetWechatPermission.showShareFunction();
autoGetWechatPermission.hideShareFunctionInMarketChapter();
......@@ -588,6 +593,10 @@ class AppRouter extends React.Component {
<Route path="/*/*/mycollection" component={Market}>
<IndexRoute component={MyCollection} />
</Route>
{/*浏览历史*/}
<Route path="/*/*/browsingHistory" component={Market}>
<IndexRoute component={BrowsingHistory} />
</Route>
{/*我的学时*/}
<Route path="/*/*/myperiod" component={MyPeriod} />
......
......@@ -9,6 +9,7 @@ export const HOMEMODULELIST = "HOMEMODULELIST";
export const TASK_MODULE_STATE = "TASK_MODULE_STATE";
export const MY_CALENDAR_LIST = "MY_CALENDAR_LIST";
export function isIndexFirstEnter(callback) {
let url = api.baseUrl+"/system/api/firstLogin/judgeIsFirstLogin?terminalType=h5";
return dispatch => {
......
......@@ -30,7 +30,8 @@ import MenuTrainReducer from '../../components/menutrain/MenuTrainReducer';
import TrainSearchResultReducer from '../../components/menutrain/TrainSearch/TrainSearchResult/TrainSearchResultReducer'
//培训详情页面
import TrainingStepsReducer from '../../components/Training/TrainingSteps/TrainingStepsReducer';
//新闻详情评论
import NewsMessageResultReducer from '../../components/newsMessage/NewsMessageResultReducer';
//我的考试
import MyExamReducer from '../../components/exam/MyExamReducer';
//考题页面列表
......@@ -107,6 +108,7 @@ const app = combineReducers({
mysur,
MenuTrainReducer,
TrainingStepsReducer,
NewsMessageResultReducer,
MyExamReducer,
myCourse,
courseplay,
......
......@@ -621,28 +621,28 @@ var wechatPermission = {
}
}
},
sameHashNeedReload(hashChangeObject) {
const oldUrl = hashChangeObject.oldURL;
const newUrl = hashChangeObject.newURL;
if(!window.virtualCurrencyUnit){
Network.get(url.baseUrl+"/mall/student/token/config/rule",(res)=>{
window.virtualCurrencyUnit = res.data.tokenName;
});
}
// sameHashNeedReload(hashChangeObject) {
// const oldUrl = hashChangeObject.oldURL;
// const newUrl = hashChangeObject.newURL;
// if(!window.virtualCurrencyUnit){
// Network.get(url.baseUrl+"/mall/student/token/config/rule",(res)=>{
// window.virtualCurrencyUnit = res.data.tokenName;
// });
// }
if(location.hash.includes("/nocontentauth?msg")){
location.reload();
return;
}
// if(location.hash.includes("/nocontentauth?msg")){
// location.reload();
// return;
// }
if(location.hash.includes("login?noAutoLogin=true")){
location.reload();
return;
}
if (oldUrl.split("?")[0] == newUrl.split("?")[0] && (oldUrl.includes("/MarketingDetail?") || oldUrl.includes("/media?") || oldUrl.includes("NewsMessageResult"))) {
location.reload();
}
},
// if(location.hash.includes("login?noAutoLogin=true")){
// location.reload();
// return;
// }
// if (oldUrl.split("?")[0] == newUrl.split("?")[0] && (oldUrl.includes("/MarketingDetail?") || oldUrl.includes("/media?") || oldUrl.includes("NewsMessageResult"))) {
// location.reload();
// }
// },
sendDeviceInfo(operation) {
let sendUrl = url.baseUrl + "/heart_input";
let accountId = sessionStorage.getItem("accountId")
......
......@@ -23,7 +23,6 @@ var languageObject = {
// alert(!window.location.hash.includes("login"))
// alert(sessionStorage.getItem("accountId"))
// console.log('cccccccccccccxxxxxxxxxxxxxx', sessionStorage)
console.log('sssssssssssssqqqqqqqqqqqqqq', window.location.hash)
if ((!window.location.href.includes("login") || !window.location.hash.includes("login")) && sessionStorage.getItem("accountId")) { //如果不在login页面,做此操作 , 而且用户已经登录
// alert('if--if')
// console.log("alert('if--if')")
......@@ -58,9 +57,9 @@ var languageObject = {
})
Network.get(API.baseUrl + "/mall/student/token/config/rule", (res) => {
window.virtualCurrencyUnit = res.data.tokenName;
});
// Network.get(API.baseUrl + "/mall/student/token/config/rule", (res) => {
// window.virtualCurrencyUnit = res.data.tokenName;
// });
} catch (error) {
intl.init({
......
......@@ -408,7 +408,10 @@ const fnNavigate = (item, jumpType) => {
clearTimeout(clearTime)//bug-12616-cwj
clearTime= setTimeout(() => {//bug-12616-cwj
hashHistory.push({
pathname: routerBefore + url
pathname: routerBefore + url,
query:{
id:relationId
}
});
}, 10);
......
......@@ -374,6 +374,8 @@ export default {
"VerificationCode": "验证码",
"September": "9月",
"Collect": "收藏",
"MyCollect": "我的收藏",
"BrowsingHistory": "浏览历史",
"Hours": "小时",
"Yes": "确定",
"Forbidden": "禁言",
......@@ -763,7 +765,7 @@ export default {
"msg.current.study.plan.not.start": "当前学习计划时间未到,无法开始学习。",
"ContentRequired": "个必修活动",
"album.biz.error": "专辑服务异常",
"TrainingProgram2": "项目",
"TrainingProgram2": "活动",
"SearchForPostsIManage": "搜索我管理的帖子",
"Name": "姓名",
"withDrawRemind": "撤回提醒",
......
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