首页 > 其他 > 详细

sharepoint - peoplepicker

时间:2020-12-27 21:20:28      阅读:32      评论:0      收藏:0      [点我收藏+]
//初始化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
}

sharepoint - peoplepicker

原文:https://www.cnblogs.com/huangbinlooksgood/p/14198576.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!