//初始化peoplepicker组件
function initializePeoplePicker(param){
// Create a schema to store picker properties, and set the properties.
var schema = {};
schema[‘PrincipalAccountType‘] = ‘User,DL,SecGroup,SPGroup‘;
schema[‘SearchPrincipalSource‘] = 15;
schema[‘ResolvePrincipalSource‘] = 15;
schema[‘AllowMultipleValues‘] = true;
schema[‘MaximumEntitySuggestions‘] = 50;
schema[‘Width‘] = ‘100%‘;
// Render and initialize the picker.
// Pass the ID of the DOM element that contains the picker, an array of initial
// PickerEntity objects to set the picker value, and a schema that defines
// picker properties.
console.log(param)
window.SPClientPeoplePicker_InitStandaloneControlWrapper(param, null, schema);
//document.getElementById(param + ‘_TopSpan_InitialHelpText‘).innerHTML = "";
}
function unique(arr){
var newArr = [];
for(var i in arr){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i])
}
}
return newArr;
}
//监控组件数据变化
function watchBlur(){
console.log("go watchblur")
$(‘#peoplePickerDiv1_TopSpan_EditorInput‘).blur(function(){
if(document.getElementById(‘peoplePickerDiv1_TopSpan_HiddenInput‘).value.indexOf(‘true‘) !== -1){
getNameIdValue(‘peoplePickerDiv1‘);
console.log(window.peopleId1);
}else if(document.getElementById(‘peoplePickerDiv1_TopSpan_HiddenInput‘).value == ‘[]‘){
window.peopleId1 = [];
}
});
$(‘#peoplePickerDiv2_TopSpan_EditorInput‘).blur(function(){
if(document.getElementById(‘peoplePickerDiv2_TopSpan_HiddenInput‘).value.indexOf(‘true‘) !== -1){
getNameIdValue(‘peoplePickerDiv2‘);
console.log(window.peopleId2);
}else if(document.getElementById(‘peoplePickerDiv2_TopSpan_HiddenInput‘).value == ‘[]‘){
window.peopleId2 = [];
}
});
$(‘#peoplePickerDiv3_TopSpan_EditorInput‘).blur(function(){
if(document.getElementById(‘peoplePickerDiv3_TopSpan_HiddenInput‘).value.indexOf(‘true‘) !== -1){
getNameIdValue(‘peoplePickerDiv3‘);
console.log(window.peopleId3);
}else if(document.getElementById(‘peoplePickerDiv3_TopSpan_HiddenInput‘).value == ‘[]‘){
window.peopleId3 = [];
}
});
$(‘#peoplePickerDiv4_TopSpan_EditorInput‘).blur(function(){
if(document.getElementById(‘peoplePickerDiv4_TopSpan_HiddenInput‘).value.indexOf(‘true‘) !== -1){
getNameIdValue(‘peoplePickerDiv4‘);
console.log(window.peopleId4);
}else if(document.getElementById(‘peoplePickerDiv4_TopSpan_HiddenInput‘).value == ‘[]‘){
window.peopleId4 = [];
}
});
$(‘#peoplePickerDiv5_TopSpan_EditorInput‘).blur(function(){
if(document.getElementById(‘peoplePickerDiv5_TopSpan_HiddenInput‘).value.indexOf(‘true‘) !== -1){
getNameIdValue(‘peoplePickerDiv5‘);
console.log(window.peopleId5);
}else if(document.getElementById(‘peoplePickerDiv5_TopSpan_HiddenInput‘).value == ‘[]‘){
window.peopleId5 = [];
}
});
}
function getItem(context,users,_eleID) {
var deferred = $.Deferred();
var userTemp = "";
userTemp = context.get_web().ensureUser(users.Key);
context.load(userTemp);
console.log(context);
context.executeQueryAsync(
Function.createDelegate(null, function () {
if(_eleID == ‘peoplePickerDiv1‘){
if(window.peopleId1.indexOf(userTemp.get_id()) == -1){
window.peopleId1.push(userTemp.get_id());
}
}else if(_eleID == ‘peoplePickerDiv2‘){
if(window.peopleId2.indexOf(userTemp.get_id()) == -1){
window.peopleId2.push(userTemp.get_id());
}
}else if(_eleID == ‘peoplePickerDiv3‘){
if(window.peopleId3.indexOf(userTemp.get_id()) == -1){
window.peopleId3.push(userTemp.get_id());
}
}else if(_eleID == ‘peoplePickerDiv4‘){
if(window.peopleId4.indexOf(userTemp.get_id()) == -1){
window.peopleId4.push(userTemp.get_id());
}
}else if(_eleID == ‘peoplePickerDiv5‘){
if(window.peopleId5.indexOf(userTemp.get_id()) == -1){
window.peopleId5.push(userTemp.get_id());
}
console.log("里边执行")
}
deferred.resolve();
}),
Function.createDelegate(null,function () {
deferred.reject();
})
);
return deferred.promise();
};
//根据domid获取userid
function getNameIdValue(_eleID) {
SP.SOD.executeFunc("sp.js", ‘SP.ClientContext‘, async () => {
console.log("go getnameidvalue")
var peoplePicker = window.SPClientPeoplePicker.SPClientPeoplePickerDict[_eleID + "_TopSpan"];
var users = peoplePicker.GetAllUserInfo();
console.log("==users start==")
console.log(users)
console.log("==users end==")
if(_eleID == ‘peoplePickerDiv1‘){
window.peopleId1 = [];
}else if(_eleID == ‘peoplePickerDiv2‘){
window.peopleId2 = [];
}else if(_eleID == ‘peoplePickerDiv3‘){
window.peopleId3 = [];
}else if(_eleID == ‘peoplePickerDiv4‘){
window.peopleId4 = [];
}else if(_eleID == ‘peoplePickerDiv5‘){
window.peopleId5 = [];
}
for(var i=0; i<users.length; i++){
var context = new SP.ClientContext.get_current();
getItem(context,users[i],_eleID).then(
function () {
console.log("外边执行")
},
function () {
console.log(‘error‘);
}
);
}
});
}
//根据取回信息进行信息回显
function setWiw(domId,userid) {
var dtd = $.Deferred();
var userInfo = undefined;
var requestUri = window._spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
var requestHeaders = {
"accept": "application/json;odata=verbose"
};
$.ajax({
async: false,
url: requestUri,
contentType: "application/json;odata=verbose",
headers: requestHeaders,
success: function (data, request) {
userInfo = data.d;
dtd.resolve(userInfo).then(function (data) {
var keyvalue = data.LoginName;
if(data && data.LoginName && data.LoginName.indexOf(‘|‘)>-1)
{
keyvalue=data.LoginName.split(‘|‘)[1];
}
SP.SOD.executeFunc("clientpeoplepicker.js", ‘SPClientPeoplePicker‘, function () {
var peoplePicker = window.SPClientPeoplePicker.SPClientPeoplePickerDict[domId + "_TopSpan"];
peoplePicker.AddUserKeys(keyvalue);
console.log(peoplePicker);
});
})
},
error: function () {
}
});
return dtd.promise();
}
export {
initializePeoplePicker
}
export{
watchBlur
}
export {
getNameIdValue
}
export {
setWiw
}
export {
unique
}
原文:https://www.cnblogs.com/huangbinlooksgood/p/14198576.html