Commit 20c677e2 by yuananting
parents b32d90aa 950b4079
......@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Date: 2020-08-31 09:34:31
* @LastEditors: zhangleyuan
* @LastEditTime: 2021-01-09 14:39:46
* @LastEditTime: 2021-04-27 16:59:07
* @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有
*/
......@@ -96,7 +96,6 @@ class Axios {
case 401:
User.removeUserId();
User.removeToken();
message.error('请登录');
window.RCHistory.replace('/login');
break;
case 403:
......
/*
* @Author: 陈剑宇
* @Date: 2020-05-07 14:43:01
* @LastEditTime: 2021-04-15 21:42:47
* @LastEditors: yuananting
* @LastEditTime: 2021-04-19 16:42:24
* @LastEditors: zhangleyuan
* @Description:
* @FilePath: /wheat-web-demo/src/domains/basic-domain/constants.ts
*/
......@@ -22,8 +22,8 @@ const PATH_MAP: MapInterface = {
dev: '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',
gray: 'https://gray.xiaomai5.com/xiaomai-cloud-class-web/h5.html',
prod: 'https://b.xiaomai5.com/xiaomai-cloud-class-web/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'
};
// axios headers config
......
......@@ -78,11 +78,6 @@ function EmployeeManage() {
avatar: "",
});
const [roleIds, setRoleIds] = useState<Array<RoleItemType>>([]);
const roleMap = {
CloudManager: "管理员",
CloudLecturer: "讲师",
StoreManager: "学院管理员",
};
const storeId = User.getStoreId();
const StoreType = User.getStoreType();
const isWorkWechat = !!(StoreType === "WE_CHAT_STORE");
......
......@@ -5,7 +5,7 @@
*/
import React from 'react';
import { Modal, Input, Table, message, Tooltip } from 'antd';
import { Modal, Input, Table, message, Tooltip, Empty } from 'antd';
import Service from '@/common/js/service';
import User from '@/common/js/user'
import SetEmployeeModal from "./SetEmployeeModal";
......@@ -318,6 +318,13 @@ class ChooseMembersModal extends React.Component {
pagination={false}
scroll={{ y: 290}}
// bordered={true}
locale={{
emptyText: <div>
<Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description={false} />
<div style={{ color: '#333', marginTop: -70 }}>暂无数据</div>
<div style={{ color: '#666', padding: '0 32px', fontSize: '12px' }}>需要先将员工添加到企微可见范围后,员工才会出现在这里</div>
</div>,
}}
size={'small'}
rowSelection={{
columnWidth : 24,
......
......@@ -11,6 +11,7 @@ const roleMap = {
CloudManager: "管理员",
CloudLecturer: "讲师",
StoreManager: "学院管理员",
CloudOperator: '运营师',
};
export default class CollegeManagePage extends React.Component {
......@@ -79,7 +80,7 @@ export default class CollegeManagePage extends React.Component {
User.removeToken();
User.removeEnterpriseId();
User.clearUserInfo();
const htmlUrl = `${LIVE_SHARE}store/index?id=${User.getStoreId()}&userId=${User.getUserId()}&from=work_weixin`;
const htmlUrl = `${LIVE_SHARE}store/index?id=${User.getCustomerStoreId()||User.getStoreId()}&userId=${User.getUserId()}&from=work_weixin`;
window.location.href = htmlUrl;
});
}
......
......@@ -34,7 +34,7 @@ function Login(props) {
User.setCustomerStoreId(storeId);
}
if (from === 'customer' && enterpriseId && userId) {
if (!user.getToken() || enterpriseId !== user.getEnterpriseId()) {
if (!user.getToken() || enterpriseId !== user.getEnterpriseId() || userId !== User.getUserId()) {
getWXWorkLoginNoCheck(enterpriseId, userId);
} else {
window.RCHistory.push({
......
import React, { useState, useRef, useEffect } from 'react';
import qrcode from '@/core/qrcode/qrcode.js'
import qrcode from "@/libs/qrcode/qrcode.js";
import Service from "@/common/js/service";
import User from '@/common/js/user';
import { PATH } from '@/domains/basic-domain/constants';
......@@ -7,6 +7,7 @@ import './WechatLogin.less'
const Logo = require("@/common/images/logo.png")
declare var location: any;
export default function WechatLogin(props: any) {
const freshTime = 60;
const init: any = null;
......@@ -31,15 +32,18 @@ export default function WechatLogin(props: any) {
// console.log(redirect)
// const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww409ccf9c6e31f19e&redirect_uri=${encodeURIComponent(redirect)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
// console.log(url)
const qrcodeWrapDom:any = document.querySelector('#qrcode');
let qrnode = new qrcode({
text: redirect,
correctLevel: 2,
size: 160,
image: Logo,
imageSize: 50
});
QRCode.current.innerHTML = ''
QRCode.current.prepend(qrnode);
});
qrcodeWrapDom.innerHTML = '';
qrcodeWrapDom && qrcodeWrapDom.appendChild(qrnode);
// QRCode.current.innerHTML = ''
// QRCode.current.prepend(qrnode);
setLeftTime(freshTime);
timer.current = setInterval(() => {
if (leftTimeRef.current == 0) {
......@@ -85,9 +89,7 @@ export default function WechatLogin(props: any) {
return <div className='wechatLoginBox'>
<div className="rwm">
<div id="qrcode" ref={(dom) => {
QRCode.current = dom
}}></div>
<div id="qrcode"></div>
{
status === 1 && <div className="error">
......
......@@ -80,11 +80,6 @@ function EmployeesManagePage() {
avatar: "",
});
const [roleIds, setRoleIds] = useState<Array<RoleItemType>>([]);
const roleMap = {
CloudManager: "管理员",
CloudLecturer: "讲师",
StoreManager: "学院管理员",
};
const storeId = User.getStoreId();
const StoreType = User.getStoreType();
const isWorkWechat = !!(StoreType === "WE_CHAT_STORE");
......
......@@ -215,7 +215,7 @@ function ExamData(props: any) {
<div className="dataPanal">
{
!!examData.singleChoiceCnt && <div className="item">
<div className="num">{(examData.singleChoiceAccuracy || 0) * 100}%</div>
<div className="num">{Math.round((examData.singleChoiceAccuracy || 0) * 100)}%</div>
<div className="percent">正确率</div>
<div className="subTitle"><div className="type"><span className="icon iconfont">&#xe7fa;</span>单选题 <span>(共{examData.singleChoiceCnt}题)</span></div></div>
</div>
......@@ -223,7 +223,7 @@ function ExamData(props: any) {
{
!!examData.multiChoiceCnt && <div className="item">
<div className="num">{(examData.multiChoiceAccuracy || 0) * 100}%</div>
<div className="num">{Math.round((examData.multiChoiceAccuracy || 0) * 100)}%</div>
<div className="percent">正确率</div>
<div className="subTitle"><div className="type"><span className="icon iconfont">&#xe7fb;</span>多选题<span>(共{examData.multiChoiceCnt}题)</span></div></div>
</div>
......@@ -231,7 +231,7 @@ function ExamData(props: any) {
{
!!examData.judgeCnt && <div className="item">
<div className="num">{(examData.judgeAccuracy || 0) * 100}%</div>
<div className="num">{Math.round((examData.judgeAccuracy || 0) * 100)}%</div>
<div className="percent">正确率</div>
<div className="subTitle"><div className="type"><span className="icon iconfont">&#xe7fc;</span>判断题<span>(共{examData.judgeCnt}题)</span></div></div>
</div>
......@@ -240,14 +240,14 @@ function ExamData(props: any) {
{
!!examData.gapFillingCnt && <div className="item">
<div className="num">{(examData.gapFillingAccuracy || 0) * 100}%</div>
<div className="num">{Math.round((examData.gapFillingAccuracy || 0) * 100)}%</div>
<div className="percent">正确率</div>
<div className="subTitle"><div className="type"><span className="icon iconfont">&#xe7fd;</span>填空题<span>(共{examData.gapFillingCnt}题)</span></div></div>
</div>
}
{
!!examData.indefiniteChoiceCnt && <div className="item">
<div className="num">{(examData.indefiniteChoiceAccuracy || 0) * 100}%</div>
<div className="num">{Math.round((examData.indefiniteChoiceAccuracy || 0) * 100)}%</div>
<div className="percent">正确率</div>
<div className="subTitle"><div className="type"><span className="icon iconfont">&#xe7fe;</span>不定项选择题 <span>(共{examData.indefiniteChoiceCnt}题)</span></div></div>
</div>
......
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