Commit 8b8a956b by zhangleyuan

feat:解决合并代码后的冲突

parents 559d02c0 16af0617
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
module.exports = { module.exports = {
isWeiXin() { isWeiXin() {
const ua = navigator.userAgent.toLowerCase(); const ua = navigator.userAgent.toLowerCase();
return ua.indexOf('micromessenger') > 0; return (ua.indexOf('micromessenger') > 0) && !(/wxwork/i.test(navigator.userAgent));
}, },
isWorkWx (){ isWorkWx (){
return /wxwork/i.test(navigator.userAgent) return /wxwork/i.test(navigator.userAgent)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: wufan * @Author: wufan
* @Date: 2021-05-11 10:21:37 * @Date: 2021-05-11 10:21:37
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-08-11 17:27:32 * @LastEditTime: 2021-08-12 15:02:18
* @Description: 企业微信api * @Description: 企业微信api
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* *
...@@ -12,72 +12,35 @@ import Platform from '@/common/js/platform'; ...@@ -12,72 +12,35 @@ import Platform from '@/common/js/platform';
import User from '@/common/js/user'; import User from '@/common/js/user';
import Service from '@/common/js/service'; import Service from '@/common/js/service';
console.log(wx.agentConfig,' console.log(wx.agentConfig) ')
export default class WechatApi { export default class WechatApi {
static async initConfig(params = { isAgentConfig: false, url: '' }) { static initConfig(params = { isAgentConfig: false, url: '' }) {
if (Platform.isWorkWx()) { if (Platform.isWorkWx()) {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
console.log(1111111111111111111111111111111111) console.log(1111111111111111111111111111111111)
Service.Hades('anon/hades/getWxCorpJSAPISignature', { Service.Hades('anon/hades/getWxCorpJSAPISignature', {
storeId: User.getStoreId(), storeId: User.getStoreId(),
url: params.url, url: window.location.href.split('#')[0],
}).then((result) => { }).then((result) => {
const res = result.result; const res = result.result;
this.config({ wx.config({
beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题 beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.appId, // 必填,企业微信的corpID appId: res.appId, // 必填,企业微信的corpID
timestamp: res.timestamp, // 必填,生成签名的时间戳 timestamp: res.timestamp, // 必填,生成签名的时间戳
nonceStr: res.nonceStr, // 必填,生成签名的随机串 nonceStr: res.nonceStr, // 必填,生成签名的随机串
signature: res.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法 signature: res.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法
jsApiList: ['chooseImage', 'shareToExternalContact', 'selectExternalContact', 'selectEnterpriseContact'], jsApiList: ['scanQRCode'],
}).then(() => { });
console.log(2222222222222222222222222222222222222222) })
Service.Hades('anon/hades/getWxWorkJSAPISignature', { wx.ready(() => {
storeId: User.getStoreId(),
url: params.url,
}).then((result2) => {
console.log(333333333333333333333333333333333)
const res2 = result2.result;
this.agentConfig({
corpid: res2.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: res2.agentid, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: res2.timestamp, // 必填,生成签名的时间戳
nonceStr: res2.nonceStr, // 必填,生成签名的随机串
signature: res2.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ['selectExternalContact', 'getCurExternalContact', 'getContext', 'shareToExternalContact', 'sendChatMessage', 'shareToExternalChat', 'startLiving', 'replayLiving'],
success: (res) => {
console.log(res, 'res-agentconfig');
console.info('window.WWOpenData', window.WWOpenData);
resolve(res);
},
fail: (err) => {
console.log(1213545344545)
console.log(err, 'err-agentconfig');
reject(err);
},
});
});
})
.catch((err)=> {
console.log("GGGGGGGGGGGGG",err)
})
});
})
} else {
if (params.isAgentConfig) {
console.log(32132132, 'cesgu')
return new Promise(async (resolve, reject) => {
Service.Hades('anon/hades/getWxWorkJSAPISignature', { Service.Hades('anon/hades/getWxWorkJSAPISignature', {
storeId: User.getStoreId(), storeId: User.getStoreId(),
url: params.url, url: window.location.href.split('#')[0],
}).then((result2) => { }).then((result2) => {
const res2 = result2.result; const res2 = result2.result;
this.agentConfig({ wx.agentConfig({
corpid: res2.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致 corpid: res2.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: res2.agentid, // 必填,企业微信的应用id (e.g. 1000247) agentid: res2.agentid, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: res2.timestamp, // 必填,生成签名的时间戳 timestamp: res2.timestamp, // 必填,生成签名的时间戳
...@@ -85,58 +48,55 @@ export default class WechatApi { ...@@ -85,58 +48,55 @@ export default class WechatApi {
signature: res2.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法 signature: res2.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ['selectExternalContact', 'getCurExternalContact', 'getContext', 'shareToExternalContact', 'sendChatMessage', 'shareToExternalChat', 'startLiving', 'replayLiving'], jsApiList: ['selectExternalContact', 'getCurExternalContact', 'getContext', 'shareToExternalContact', 'sendChatMessage', 'shareToExternalChat', 'startLiving', 'replayLiving'],
success: (res) => { success: (res) => {
console.log(res, 'res-agentconfig'); console.log(res, 'agentConfig 成功', 'res-agentconfig');
console.info('window.WWOpenData', window.WWOpenData);
resolve(res); resolve(res);
}, },
fail: (err) => { fail: (err) => {
console.log(1213545344545) console.log(1213545344545)
console.log(err, 'err-agentconfig'); console.log(err, 'err-agentconfig');
reject(err);
}, },
}); });
}); });
}); });
} wx.error((err) => {
} console.log('getWxCorpJSAPISignature', err)
});
} })
static async config(config) {
return new Promise((resolve, reject) => {
console.info('wx.config', config);
wx.config(config);
wx.ready(resolve);
wx.error(reject);
}).then(
() => {
console.info('wx.ready');
},
(error) => {
console.error('wx.error', error);
throw error;
}
);
}
static async agentConfig(config) { } else {
wx.agentConfig({ ...config });
}
static getCurExternalContact() { return new Promise(async (resolve, reject) => {
return new Promise((resolve, reject) => { Service.Hades('anon/hades/getWxWorkJSAPISignature', {
wx.ready(() => { storeId: User.getStoreId(),
wx.invoke('getCurExternalContact', {}, function (res) { url: window.location.href.split('#')[0],
if (res.err_msg == 'getCurExternalContact:ok') { }).then((result2) => {
resolve(res.userId); //返回当前外部联系人userId const res2 = result2.result;
} else { wx.agentConfig({
reject(res.err_msg); //错误处理 corpid: res2.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
} agentid: res2.agentid, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: res2.timestamp, // 必填,生成签名的时间戳
nonceStr: res2.nonceStr, // 必填,生成签名的随机串
signature: res2.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ['selectExternalContact', 'getCurExternalContact', 'getContext', 'shareToExternalContact', 'sendChatMessage', 'shareToExternalChat', 'startLiving', 'replayLiving'],
success: (res) => {
console.log(res, 'agentConfig 成功', 'res-agentconfig');
resolve(res);
},
fail: (err) => {
console.log(1213545344545)
console.log(err, 'err-agentconfig');
},
});
}); });
}); });
}); }
} }
static getContext() { static getContext() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
wx.ready(() => { wx.ready(() => {
...@@ -156,13 +116,13 @@ export default class WechatApi { ...@@ -156,13 +116,13 @@ export default class WechatApi {
wx.ready(() => { wx.ready(() => {
wx.invoke('startLiving', { wx.invoke('startLiving', {
"livingId": id, "livingId": id,
}, function(res) { }, function (res) {
if (res.err_msg === "startLiving:ok") { if (res.err_msg === "startLiving:ok") {
resolve(true) resolve(true)
} else { } else {
reject(res.err_msg); //错误处理 reject(res.err_msg); //错误处理
} }
}); });
}); });
}) })
} }
...@@ -171,8 +131,7 @@ export default class WechatApi { ...@@ -171,8 +131,7 @@ export default class WechatApi {
wx.ready(() => { wx.ready(() => {
wx.invoke('replayLiving', { wx.invoke('replayLiving', {
"livingId": id, "livingId": id,
}, function(res) { }, function (res) {
console.log("WorkWXAPI 进入直播间",res)
if (res.err_msg === "replayLiving:ok") { if (res.err_msg === "replayLiving:ok") {
resolve(true) resolve(true)
} else { } else {
...@@ -196,7 +155,7 @@ export default class WechatApi { ...@@ -196,7 +155,7 @@ export default class WechatApi {
} }
reject(err); //错误处理 reject(err); //错误处理
} }
}); });
}); });
}) })
} }
......
/* /*
* @Author: 陈剑宇 * @Author: 陈剑宇
* @Date: 2020-05-07 14:43:01 * @Date: 2020-05-07 14:43:01
* @LastEditTime: 2021-06-22 16:49:06 * @LastEditTime: 2021-08-11 22:52:04
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: * @Description:
* @FilePath: /wheat-web-demo/src/domains/basic-domain/constants.ts * @FilePath: /wheat-web-demo/src/domains/basic-domain/constants.ts
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2020-08-20 09:21:40 * @Date: 2020-08-20 09:21:40
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-06-11 15:17:56 * @LastEditTime: 2021-08-11 22:50:48
* @Description: * @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
*/ */
......
...@@ -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: Please set LastEditors * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-08-11 21:22:26 * @LastEditTime: 2021-08-12 15:01:57
* @Description: * @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有 * @Copyright: 杭州杰竞科技有限公司 版权所有
--> -->
...@@ -40,17 +40,25 @@ ...@@ -40,17 +40,25 @@
work correctly both with client-side routing and a non-root public URL. work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`. Learn how to configure a non-root public URL by running `npm run build`.
--> -->
<title>小麦企学院</title> <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
<script type="text/javascript" src="https://image.xiaomaiketang.com/xm/iscroll-zoom-min.js"></script> <script type="text/javascript" src="https://image.xiaomaiketang.com/xm/iscroll-zoom-min.js"></script>
<script type="text/javascript" src="https://image.xiaomaiketang.com/xm/hammer.min.js"></script> <script type="text/javascript" src="https://image.xiaomaiketang.com/xm/hammer.min.js"></script>
<script type="text/javascript" src="https://image.xiaomaiketang.com/xm/lrz.all.bundle.js"></script> <script type="text/javascript" src="https://image.xiaomaiketang.com/xm/lrz.all.bundle.js"></script>
<script type="text/javascript" src="https://image.xiaomaiketang.com/xm/PhotoClip.js"></script> <script type="text/javascript" src="https://image.xiaomaiketang.com/xm/PhotoClip.js"></script>
<script type="text/javascript" charset="utf-8" src="//g.alicdn.com/sd/ncpc/nc.js?t=2015052012"></script> <script type="text/javascript" charset="utf-8" src="//g.alicdn.com/sd/ncpc/nc.js?t=2015052012"></script>
<script type="text/javascript" src="https://xiaomai-js.oss-cn-hangzhou.aliyuncs.com/loghub-xm-0.0.1-beta.js"></script> <script type="text/javascript" src="https://xiaomai-js.oss-cn-hangzhou.aliyuncs.com/loghub-xm-0.0.1-beta.js"></script>
<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script type="text/javascript" src="//open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
</head> </head>
<body> <body>
<script>
setTimeout(()=>{
if(!wx.agentConfig){
window.location.reload()
}
},100)
</script>
<noscript>You need to enable JavaScript to run this app.</noscript> <noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div> <div id="root"></div>
<!-- <!--
......
...@@ -64,7 +64,6 @@ function MemberTree(props) { ...@@ -64,7 +64,6 @@ function MemberTree(props) {
_selectNodes.push(item); _selectNodes.push(item);
} }
}) })
console.log('_selectNodes',_selectNodes);
props.onSelect(_selectNodes); props.onSelect(_selectNodes);
} }
return ( return (
......
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
} }
} }
.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before, .ant-tree.ant-tree-directory .ant-tree-treenode-selected::before{ .ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover::before, .ant-tree.ant-tree-directory .ant-tree-treenode-selected::before{
background: none; background:transparent;
}
.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher{
color:#000;
} }
} }
\ No newline at end of file
...@@ -64,7 +64,6 @@ function SearchUser(props) { ...@@ -64,7 +64,6 @@ function SearchUser(props) {
onFocus={(e)=>{onFocus(e)}} onFocus={(e)=>{onFocus(e)}}
onChange={(e)=>{onChange(e)}} onChange={(e)=>{onChange(e)}}
className="search-input-item" className="search-input-item"
// onBlur={()=>{onBlur()}}
/> />
{dropDownVisible && {dropDownVisible &&
<div className="drop-down"> <div className="drop-down">
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
} }
.container-left-body-table{ .container-left-body-table{
width: 300px; width: 300px;
height: 330px; max-height: 380px;
overflow: scroll; overflow: scroll;
.ant-table { .ant-table {
border: none; border: none;
......
...@@ -106,6 +106,7 @@ class AddLiveBasic extends React.Component { ...@@ -106,6 +106,7 @@ class AddLiveBasic extends React.Component {
<span className='label'> <span className='label'>
<span className='require'>*</span>课程名称: <span className='require'>*</span>课程名称:
</span> </span>
<div id="courseName" style={{display:"inline-block"}}>
<Input <Input
className={_.find(this.props.exItems,(item)=>{return item === "courseName"})?"err":""} className={_.find(this.props.exItems,(item)=>{return item === "courseName"})?"err":""}
value={courseName} value={courseName}
...@@ -116,6 +117,7 @@ class AddLiveBasic extends React.Component { ...@@ -116,6 +117,7 @@ class AddLiveBasic extends React.Component {
this.props.onChange('courseName', e.target.value) this.props.onChange('courseName', e.target.value)
}} }}
/> />
</div>
</div> </div>
<div className='course-cover'> <div className='course-cover'>
<span className='label'>封面图:</span> <span className='label'>封面图:</span>
...@@ -146,6 +148,7 @@ class AddLiveBasic extends React.Component { ...@@ -146,6 +148,7 @@ class AddLiveBasic extends React.Component {
<span className='label'> <span className='label'>
<span className='require'>*</span>课程分类: <span className='require'>*</span>课程分类:
</span> </span>
<div id="categoryId" style={{display:"inline-block"}}>
<CourseCatalogSelect <CourseCatalogSelect
className={_.find(this.props.exItems,(item)=>{return item === "categoryId"})?"err":""} className={_.find(this.props.exItems,(item)=>{return item === "categoryId"})?"err":""}
value={categoryId} value={categoryId}
...@@ -153,6 +156,7 @@ class AddLiveBasic extends React.Component { ...@@ -153,6 +156,7 @@ class AddLiveBasic extends React.Component {
this.handleChangeCatalogList(value, label) this.handleChangeCatalogList(value, label)
}} }}
/> />
</div>
</div> </div>
{showSelectFileModal && ( {showSelectFileModal && (
<SelectPrepareFileModal <SelectPrepareFileModal
......
...@@ -248,7 +248,7 @@ class LiveCourseList extends React.Component { ...@@ -248,7 +248,7 @@ class LiveCourseList extends React.Component {
}, },
{ {
title: '课件管理', title: '课件管理',
width: '8%', width: '75px',
key: 'courseware', key: 'courseware',
dataIndex: 'courseware', dataIndex: 'courseware',
render: (val, item) => { render: (val, item) => {
...@@ -895,7 +895,7 @@ class LiveCourseList extends React.Component { ...@@ -895,7 +895,7 @@ class LiveCourseList extends React.Component {
}) })
return return
} }
if (item.startTime + 15*60*1000 < new Date().getTime()) { if (item.startTime + 15*24*60*60*1000 < new Date().getTime()) {
Modal.warning({ Modal.warning({
title: '提示', title: '提示',
content: "该直播课的回放视频已失效", content: "该直播课的回放视频已失效",
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: 吴文洁 * @Author: 吴文洁
* @Date: 2019-07-10 10:30:49 * @Date: 2019-07-10 10:30:49
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-08-11 17:22:58 * @LastEditTime: 2021-08-12 15:02:50
* @Description: * @Description:
*/ */
import React, { useContext, useEffect, useState } from 'react'; import React, { useContext, useEffect, useState } from 'react';
...@@ -16,11 +16,10 @@ import User from '@/common/js/user'; ...@@ -16,11 +16,10 @@ import User from '@/common/js/user';
import BaseService from "@/domains/basic-domain/baseService"; import BaseService from "@/domains/basic-domain/baseService";
import moment from 'moment'; import moment from 'moment';
import { VersionContext, VersionInfo, XMContext } from '@/store/context'; import { VersionContext, VersionInfo, XMContext } from '@/store/context';
import WechatApi from '@/common/js/wechatApi';
import { setStoreGroupPermission, setStorePermission, setStoreGroupList, setStoreList, setWechatLogin } from '@/store/actions/index'; import { setStoreGroupPermission, setStorePermission, setStoreGroupList, setStoreList, setWechatLogin } from '@/store/actions/index';
import Service from "@/common/js/service"; import Service from "@/common/js/service";
import Bus from '@/core/tbus'; import Bus from '@/core/tbus';
import WechatApi from '@/common/js/wechatApi';
import { func } from 'prop-types';
const { Footer, Sider, Content } = Layout; const { Footer, Sider, Content } = Layout;
...@@ -40,7 +39,6 @@ const App: React.FC = (props: any) => { ...@@ -40,7 +39,6 @@ const App: React.FC = (props: any) => {
useEffect(() => { useEffect(() => {
getStorePermission(); getStorePermission();
initWechatConfig(); initWechatConfig();
getStoreAndUserInfo(); getStoreAndUserInfo();
getVersion(); getVersion();
if (window.location.hash === "#/") { if (window.location.hash === "#/") {
......
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