• sharepoint


    //初始化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
    }
    
    //css
    /*peoplepicker组件样式*/
    	#buid_TopSpan,#dhid_TopSpan,#poid_TopSpan{
    		border-radius:4px;
    		height:40px;
    		line-height:20px;
    		300px !important;
    		margin-top:30px;
    		font-size:15px;
    		text-decoration:underline;
    	}
    	#buid_TopSpan_EditorInput,#dhid_TopSpan_EditorInput,#poid_TopSpan_EditorInput{
    		margin-top:8px;
    		margin-left:15px;
    	}
    	.sp-peoplepicker-userSpan{
    		margin-left:15px;
    		margin-top:-7px;
    	}
    	.sp-peoplepicker-autoFillContainer{
    		z-index:9999;
    	}
    	.sp-peoplepicker-topLevel, .sp-peoplepicker-topLevelDisabled{
    		cursor:text;
    		position:relative;
    		padding:3px 25px 3px 0px;
    	}
    	
    	.ms-fullWidth{
    		box-sizing:border-box;
    		-moz-box-sizing:border-box;
    		-webkit-box-sizing:border-box;
    	}
    	
    	input[type=password], input[type=text], input[type=file], input:not([type]), select, textarea, .sp-peoplepicker-topLevel, .sp-peoplepicker-topLevelDisabled, .sp-peoplepicker-autoFillContainer, .ms-inputBox{
    		border:1px solid #ababab;
    		background-color:rgba(255, 255, 255, 0.85);
    		color:#000000;
    	}
    	
    	input, select, label, textarea, button, option{
    		font-family:inherit;
    		font-size:inherit;
    		color:inherit;
    		vertical-align:middle;
    	}
    	
    	.sp-peoplepicker-autoFillContainer{
    		padding:0px;
    		display:none;
    		cursor:default;
    		max-300px;
    		min-300px;
    		position:absolute;
    		border-color:#c6c6c6;
    	}
    	
    	.sp-peoplepicker-autoFillContainer .sp-autoFill-scroll{
    		100%;
    		border:none;
    		margin:0px;
    		padding:0px;
    		max-height:200px;
    		min-100%;
    		padding-top:3px;
    		overflow-y:auto;
    		overflow-x:hidden;
    		margin-right:10px;
    		list-style-type:none;
    		box-shadow:0px 0px 0px 0px transparent;
    		background-color:#ffffff;
    	}
    	
    	.sp-peoplepicker-autoFillContainer .ms-core-menu-item{
    		white-space:nowrap;
    		padding:1px 5px 3px 5px;
    	}
    	
    	.ms-core-menu-item{
    		margin:0px;
    		cursor:pointer;
    		border:1px solid transparent;
    	}
    	
    	.sp-peoplepicker-autoFillContainer .sp-autoFill-scroll{
    		list-style-type:none;
    	}
    	
    	.ms-core-menu-link:link, .ms-core-menu-link:visited{
    		color:#000000;
    	}
    	
    	.sp-peoplepicker-autoFillContainer .ms-core-menu-link{
    		padding:0px;
    	}
    	
    	a.ms-core-menu-link{
    		text-decoration:none;
    		display:block;
    		position:relative;
    	}
    	
    	.sp-peoplepicker-autoFillContainer .ms-core-menu-item{
    		white-space:nowrap;
    	}
    	
    	.sp-autoFill-scroll .ms-core-menu-label{
    		border:none;
    	}
    	
    	.sp-peoplepicker-autoFillContainer .ms-core-menu-label{
    		display:block;
    	}
    	
    	.ms-core-menu-link:link, .ms-core-menu-link:visited{
    		color:#000000;
    	}
    	
    	.sp-peoplepicker-initialHelpText{
    		top:3px;
    		left:4px;
    		position:absolute;
    	}
    	
    	.ms-helperText, input.ms-helperText{
    		color:#666666;
    	}
    	
    	.sp-peoplepicker-waitImg{
    		16px;
    		height:16px;
    		font-size:0px;
    		position:absolute;
    		display:none;
    	}
    	
    	img{
    		border:none;
    		-webkit-tap-highlight-color:transparent;
    	}
    	
    	input[type=text].sp-peoplepicker-editorInput:focus{
    		outline:0px;
    	}
    	
    	input[type=text].sp-peoplepicker-editorInput{
    		border:0px;
    		padding:0px 1px;
    		vertical-align:inherit;
    		background-color:transparent;
    	}
    	
    	.sp-peoplepicker-delImage{
    		margin-left:4px;
    	}
    	/**/
    
    学贵有恒,而行胜于言
  • 相关阅读:
    yii框架中关于控制器中filter过滤器和外部action的使用
    关于开启url的pathinfo模式
    关于java的上转型对象
    linux下svn用法
    inode和文件描述符区别
    mysql字段更改操作命令
    c语言中的const的作用及解析
    C语言结构体--位域
    enum枚举型
    C语言结构体
  • 原文地址:https://www.cnblogs.com/huangbinlooksgood/p/14198576.html
Copyright © 2020-2023  润新知