Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xiaomai-cloud-class-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiaomai-cloud-class
xiaomai-cloud-class-web
Commits
f42fcc7a
Commit
f42fcc7a
authored
Jun 02, 2021
by
wufan
Browse files
Options
Browse Files
Download
Plain Diff
fix:合并通讯录调研并解决冲突
parents
99da3090
79615955
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
188 additions
and
9 deletions
+188
-9
src/bu-components/ChooseMembersModal.jsx
+1
-2
src/common/js/wechatApi.js
+101
-0
src/components/WWOpenDataCom.jsx
+10
-0
src/index.html
+3
-1
src/modules/college-manage/EmployeeManage.tsx
+11
-2
src/modules/college-manage/modal/ChooseMembersModal.jsx
+44
-1
src/modules/store-manage/EmployeeAddOrEditModal.tsx
+2
-2
src/modules/store-manage/EmployeesManagePage.tsx
+16
-1
No files found.
src/bu-components/ChooseMembersModal.jsx
View file @
f42fcc7a
...
...
@@ -9,8 +9,7 @@ import { Modal, Input, Table } from 'antd';
import
Service
from
'@/common/js/service'
;
// import _ from 'underscore';
import
'./ChooseMembersModal.less'
;
import
User
from
'@/common/js/user'
import
User
from
'@/common/js/user'
;
const
{
Search
}
=
Input
;
class
ChooseMembersModal
extends
React
.
Component
{
...
...
src/common/js/wechatApi.js
0 → 100644
View file @
f42fcc7a
/*
* @Author: wufan
* @Date: 2021-05-11 10:21:37
* @LastEditors: wufan
* @LastEditTime: 2021-05-11 18:05:01
* @Description: 企业微信api
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
import
User
from
"@/common/js/user"
;
import
Service
from
"@/common/js/service"
;
export
default
class
WechatApi
{
static
async
initConfig
(
params
=
{
isAgentConfig
:
false
,
url
:
""
})
{
return
Service
.
Hades
(
"anon/hades/getWxWorkJSAPISignature"
,
{
storeId
:
User
.
getStoreId
(),
url
:
params
.
url
,
}).
then
((
result
)
=>
{
const
res
=
result
.
result
;
wx
.
config
({
beta
:
true
,
// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug
:
false
,
// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId
:
res
.
corpId
,
// 必填,企业微信的corpID
timestamp
:
res
.
timeStamp
,
// 必填,生成签名的时间戳
nonceStr
:
res
.
nonceStr
,
// 必填,生成签名的随机串
signature
:
res
.
signature
,
// 必填,签名,见 附录-JS-SDK使用权限签名算法
jsApiList
:
[
"chooseImage"
,
"shareToExternalContact"
,
"selectExternalContact"
,
"selectEnterpriseContact"
,
],
});
if
(
params
.
isAgentConfig
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
wx
.
ready
(()
=>
{
Service
.
Hades
(
"anon/hades/getWxWorkJSAPISignature"
,
{
storeId
:
User
.
getStoreId
(),
url
:
params
.
url
,
}).
then
((
result2
)
=>
{
const
res2
=
result2
.
result
;
wx
.
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"
,
],
success
:
(
res
)
=>
{
console
.
log
(
res
,
"res-agentconfig"
);
console
.
info
(
"window.WWOpenData"
,
window
.
WWOpenData
);
resolve
(
res
);
},
fail
:
(
err
)
=>
{
console
.
log
(
err
,
"err-agentconfig"
);
reject
(
err
);
},
});
});
});
});
}
});
}
static
getCurExternalContact
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
wx
.
ready
(()
=>
{
wx
.
invoke
(
"getCurExternalContact"
,
{},
function
(
res
)
{
if
(
res
.
err_msg
==
"getCurExternalContact:ok"
)
{
resolve
(
res
.
userId
);
//返回当前外部联系人userId
}
else
{
reject
(
res
.
err_msg
);
//错误处理
}
});
});
});
}
static
getContext
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
wx
.
ready
(()
=>
{
wx
.
invoke
(
"getContext"
,
{},
function
(
res
)
{
if
(
res
.
err_msg
==
"getContext:ok"
)
{
resolve
(
res
.
entry
);
//返回进入H5页面的入口类型,目前有normal、contact_profile、single_chat_tools、group_chat_tools、chat_attachment
}
else
{
reject
(
res
.
err_msg
);
//错误处理
}
});
});
});
}
}
src/components/WWOpenDataCom.jsx
0 → 100644
View file @
f42fcc7a
import
React
,
{
useRef
,
useLayoutEffect
}
from
'react'
export
default
function
WWOpenDataCom
({
type
,
openid
})
{
const
ref
=
useRef
(
null
)
useLayoutEffect
(()
=>
{
WWOpenData
.
bind
(
ref
.
current
)
})
return
<
ww
-
open
-
data
ref=
{
ref
}
type=
{
type
}
openid=
{
openid
}
/>
}
\ No newline at end of file
src/index.html
View file @
f42fcc7a
...
...
@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Date: 2020-08-24 12:20:57
* @LastEditors: wufan
* @LastEditTime: 2021-0
5-27 10:24:06
* @LastEditTime: 2021-0
6-02 10:20:59
* @Description:
* @Copyright: 杭州杰竞科技有限公司 版权所有
-->
...
...
@@ -41,6 +41,8 @@
<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"
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>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
...
...
src/modules/college-manage/EmployeeManage.tsx
View file @
f42fcc7a
...
...
@@ -15,7 +15,8 @@ import Service from '@/common/js/service';
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
EmployeeAddOrEditModal
from
"../store-manage/EmployeeAddOrEditModal"
;
import
User
from
"@/common/js/user"
;
import
WechatApi
from
'@/common/js/wechatApi'
;
import
WWOpenDataCom
from
'@/components/WWOpenDataCom'
;
import
"./EmployeeManage.less"
;
import
ChooseMembersModal
from
"./modal/ChooseMembersModal"
;
import
SetEmployeeModal
from
"./modal/SetEmployeeModal"
;
...
...
@@ -94,8 +95,13 @@ function EmployeeManage() {
useEffect
(()
=>
{
getListInfo
();
initWechatConfig
();
},
[
storeId
]);
async
function
initWechatConfig
()
{
WechatApi
.
initConfig
({
isAgentConfig
:
true
,
url
:
window
.
location
.
href
.
split
(
'#'
)[
0
]
})
}
async
function
getListInfo
()
{
await
getStoreRole
();
}
...
...
@@ -140,7 +146,10 @@ function EmployeeManage() {
/>
)
}
<
span
className=
"title"
>
{
val
}
</
span
>
{
/* <span className="title">{val}</span> */
}
<
span
className=
"title"
>
<
WWOpenDataCom
type=
"userName"
openid=
{
val
}
/>
</
span
>
</
div
>
);
},
...
...
src/modules/college-manage/modal/ChooseMembersModal.jsx
View file @
f42fcc7a
...
...
@@ -11,6 +11,8 @@ import User from '@/common/js/user'
import
SetEmployeeModal
from
"./SetEmployeeModal"
;
import
'./ChooseMembersModal.less'
;
import
_
from
'underscore'
;
import
WechatApi
from
'@/common/js/wechatApi'
;
import
WWOpenDataCom
from
'@/components/WWOpenDataCom'
;
const
{
Search
}
=
Input
;
...
...
@@ -39,8 +41,48 @@ class ChooseMembersModal extends React.Component {
componentDidMount
()
{
this
.
getUserAuthority
();
this
.
initWechatConfig
();
}
initWechatConfig
=
async
()
=>
{
WechatApi
.
initConfig
({
isAgentConfig
:
true
,
url
:
window
.
location
.
href
.
split
(
'#'
)[
0
]
}).
then
(()
=>
{
console
.
info
(
'window.WWOpenData'
,
window
.
WWOpenData
);
// if (WWOpenData.checkSession) {
// WWOpenData.checkSession({
// success() {
// console.info('open-data 登录态校验成功')
// },
// fail() {
// console.error('open-data 登录态过期')
// },
// })
// }
// if (WWOpenData.on) {
// /**
// * ww-open-data 元素数据发生变更时触发
// */
// WWOpenData.on('update', event => {
// const openid = event.detail.element.getAttribute('openid')
// console.info('渲染数据发生变更', openid, event.detail.hasData)
// })
// /**
// * ww-open-data 获取数据失败时触发
// */
// WWOpenData.on('error', () => {
// console.error('获取数据失败')
// })
// }
// WWOpenData.bindAll(document.querySelectorAll('ww-open-data'))
})
.
catch
(
error
=>
{
console
.
log
(
"error-----"
,
error
);
})
}
// 获取对应文件相关成员
getUserAuthority
=
(
searchKey
=
''
)
=>
{
const
{
query
}
=
this
.
state
;
...
...
@@ -216,7 +258,8 @@ class ChooseMembersModal extends React.Component {
<
div
className=
'avatar'
>
<
span
className=
"icon iconfont avatar-icon"
>

</
span
>
<
Tooltip
title=
{
name
}
>
<
span
className=
'userImg'
>
{
name
}
</
span
>
{
/* <span className='userImg'>{name}</span> */
}
<
WWOpenDataCom
type=
"userName"
openid=
{
name
}
/>
</
Tooltip
>
</
div
>
)
...
...
src/modules/store-manage/EmployeeAddOrEditModal.tsx
View file @
f42fcc7a
/*
* @Author: wufan
* @Date: 2020-11-27 16:21:49
* @LastEditors:
zhangleyu
an
* @LastEditTime: 2021-0
3-09 14:21:35
* @LastEditors:
wuf
an
* @LastEditTime: 2021-0
5-11 10:58:58
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
...
...
src/modules/store-manage/EmployeesManagePage.tsx
View file @
f42fcc7a
...
...
@@ -15,6 +15,8 @@ import { QuestionCircleOutlined } from "@ant-design/icons";
import
StoreService
from
"@/domains/store-domain/storeService"
;
import
EmployeeAddOrEditModal
from
"./EmployeeAddOrEditModal"
;
import
User
from
"@/common/js/user"
;
import
WechatApi
from
'@/common/js/wechatApi'
;
import
WWOpenDataCom
from
'@/components/WWOpenDataCom'
;
import
"./EmployeesManagePage.less"
;
import
Item
from
"antd/lib/list/Item"
;
...
...
@@ -86,12 +88,22 @@ function EmployeesManagePage() {
useEffect
(()
=>
{
getEmployeeList
();
initWechatConfig
();
},
[
query
]);
useEffect
(()
=>
{
getListInfo
();
},
[
storeId
]);
async
function
initWechatConfig
()
{
WechatApi
.
initConfig
({
isAgentConfig
:
true
,
url
:
window
.
location
.
href
.
split
(
'#'
)[
0
]
}).
then
(()
=>
{
console
.
info
(
'window.WWOpenData'
,
window
.
WWOpenData
);
})
.
catch
(
error
=>
{
console
.
log
(
"error-----"
,
error
);
})
}
async
function
getListInfo
()
{
await
getStoreRole
();
}
...
...
@@ -136,7 +148,10 @@ function EmployeesManagePage() {
/>
)
}
<
span
className=
"title"
>
{
val
}
</
span
>
{
/* <span className="title">{val}</span> */
}
<
span
className=
"title"
>
<
WWOpenDataCom
type=
"userName"
openid=
{
val
}
/>
</
span
>
</
div
>
);
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment