Commit f42fcc7a by wufan

fix:合并通讯录调研并解决冲突

parents 99da3090 79615955
......@@ -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 {
......
/*
* @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); //错误处理
}
});
});
});
}
}
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
......@@ -2,7 +2,7 @@
* @Author: 吴文洁
* @Date: 2020-08-24 12:20:57
* @LastEditors: wufan
* @LastEditTime: 2021-05-27 10:24:06
* @LastEditTime: 2021-06-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>
......
......@@ -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>
);
},
......
......@@ -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">&#xe84a;</span>
<Tooltip title={name}>
<span className='userImg'>{name}</span>
{/* <span className='userImg'>{name}</span> */}
<WWOpenDataCom type="userName" openid={name}/>
</Tooltip>
</div>
)
......
/*
* @Author: wufan
* @Date: 2020-11-27 16:21:49
* @LastEditors: zhangleyuan
* @LastEditTime: 2021-03-09 14:21:35
* @LastEditors: wufan
* @LastEditTime: 2021-05-11 10:58:58
* @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/
......
......@@ -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>
);
},
......
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