From f2a13e01e8843302dfb2e80fe18edec3a4ba137f Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期一, 10 三月 2025 00:58:19 +0800
Subject: [PATCH] 考勤组的增加已经表单逻辑

---
 public/static/assets/gougu/module/oaPicker.js | 1226 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 718 insertions(+), 508 deletions(-)

diff --git a/public/static/assets/gougu/module/oaPicker.js b/public/static/assets/gougu/module/oaPicker.js
index fe167d1..4baf9eb 100644
--- a/public/static/assets/gougu/module/oaPicker.js
+++ b/public/static/assets/gougu/module/oaPicker.js
@@ -1,514 +1,724 @@
-layui.define(['tool'], function (exports) {
-	const layer = layui.layer, tool = layui.tool,form=layui.form, table=layui.table,tree = layui.tree;
-	
-	const dataPicker ={
-		'department':{
-			title:'閫夋嫨閮ㄩ棬',
-			url:'/api/index/get_department',
-			area: ['400px', '524px'],
-			searchbar:'',
-			page:false,
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'閮ㄩ棬鍚嶇О'}]
-		},
-		'position':{
-			title:'閫夋嫨宀椾綅',
-			url:'/api/index/get_position',
-			area: ['400px', '524px'],
-			searchbar:'',
-			page:false,
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'宀椾綅鍚嶇О'}]
-		},
-		'services':{
-			title:'閫夋嫨鏈嶅姟绫诲瀷',
-			url:'/api/index/get_services',
-			area: ['400px', '524px'],
-			searchbar:'',
-			page:false,
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'鏈嶅姟鍚嶇О'},{field:'price',title:'鏈嶅姟鍗曚环'}]
-		},
-		'template':{
-			title:'閫夋嫨娑堟伅妯℃澘',
-			url:'/api/index/get_template',
-			area: ['600px', '568px'],
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'娑堟伅妯℃澘鍚嶇О'}]
-		},
-		'workcate':{
-			title:'閫夋嫨宸ヤ綔绫诲瀷',
-			url:'/api/index/get_work_cate',
-			area: ['400px', '524px'],
-			searchbar:'',
-			page:false,
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'宸ヤ綔绫诲瀷鍚嶇О'}]
-		},
-		'property':{
-			title:'閫夋嫨鍥哄畾璧勪骇',
-			url:'/adm/api/get_property',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'璧勪骇鍚嶇О'}]
-		},
-		'car':{
-			title:'閫夋嫨杞﹁締淇℃伅',
-			url:'/adm/api/get_car',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'杞﹁締鍚嶇О'},{field:'name',width:100,title:'杞︾墝鍙风爜',align:'center'}]
-		},
-		'room':{
-			title:'閫夋嫨浼氳瀹�',
-			url:'/adm/api/get_meeting_room',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'浼氳瀹ゅ悕绉�'},{field:'num',width:100,title:'鍙绾充汉鏁�',align:'center'}]
-		},
-		'customer':{
-			title:'閫夋嫨瀹㈡埛',
-			url:'/customer/api/get_customer',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'name',title:'瀹㈡埛鍚嶇О'}]
-		},
-		'supplier':{
-			title:'閫夋嫨渚涘簲鍟�',
-			url:'/contract/api/get_supplier',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'渚涘簲鍟嗗悕绉�'}]
-		},
-		'contract':{
-			title:'閫夋嫨閿�鍞悎鍚�',
-			url:'/contract/api/get_contract',
-			area: ['800px', '568px'],
-			cols:[{ field: 'code',width:160,title:'鍚堝悓缂栧彿',align:'center'},{field:'name',title:'鍚堝悓鍚嶇О'},{ field:'customer',title:'鍏宠仈瀹㈡埛',width: 240}]
-		},
-		'product':{
-			title:'閫夋嫨浜у搧',
-			url:'/contract/api/get_product',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'浜у搧鍚嶇О'},{field:'sale_price',title:'閿�鍞崟浠�',width: 120,align:'center'}]
-		},
-		'purchase':{
-			title:'閫夋嫨閲囪喘鍚堝悓',
-			url:'/contract/api/get_purchase',
-			area: ['800px', '568px'],
-			cols:[{ field: 'code',width:160,title:'鍚堝悓缂栧彿',align:'center'},{field:'name',title:'鍚堝悓鍚嶇О'},{ field:'supplier',title:'鍏宠仈渚涘簲鍟�',width: 240}]
-		},
-		'purchased':{
-			title:'閫夋嫨閲囪喘鐗╁搧',
-			url:'/contract/api/get_purchased',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'閲囪喘鐗╁搧鍚嶇О'},{field:'purchase_price',title:'閲囪喘鍗曚环',width: 120,align:'center'}]
-		},
-		'project':{
-			title:'閫夋嫨椤圭洰',
-			url:'/project/api/get_project',
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{field:'title',title:'椤圭洰鍚嶇О'}]
-		},
-		'task':{
-			title:'閫夋嫨浠诲姟',
-			url:'/project/api/get_task',
-			area: ['800px', '568px'],
-			cols:[{field:'id',width:90,title:'搴忓彿',align:'center'},{ field:'title',title:'浠诲姟涓婚'},{field:'project',width:240,title:'鍏宠仈椤圭洰'}]
-		}
-	}
+layui.define(["tool"], function (exports) {
+  const layer = layui.layer,
+    tool = layui.tool,
+    form = layui.form,
+    table = layui.table,
+    tree = layui.tree;
 
-	let select_ids=[];select_names=[];select_array=[];
-	const obj = {
-		employeeRender:function(){
-			var me=this,letterTem='';
-			for(var i=0;i<26;i++){
-				letterTem+='<span class="layui-letter-span" data-code="'+String.fromCharCode(97+i)+'">'+String.fromCharCode(65+i)+'</span>';
-			}
-			var tpl='<div style="width:210px; height:388px; border-right:1px solid #eee; overflow-x: hidden; overflow-y: auto; float:left;">\
+  const dataPicker = {
+    department: {
+      title: "閫夋嫨閮ㄩ棬",
+      url: "/api/index/get_department",
+      area: ["400px", "524px"],
+      searchbar: "",
+      page: false,
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "閮ㄩ棬鍚嶇О" }
+      ]
+    },
+    position: {
+      title: "閫夋嫨宀椾綅",
+      url: "/api/index/get_position",
+      area: ["400px", "524px"],
+      searchbar: "",
+      page: false,
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "宀椾綅鍚嶇О" }
+      ]
+    },
+    services: {
+      title: "閫夋嫨鏈嶅姟绫诲瀷",
+      url: "/api/index/get_services",
+      area: ["400px", "524px"],
+      searchbar: "",
+      page: false,
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "鏈嶅姟鍚嶇О" },
+        { field: "price", title: "鏈嶅姟鍗曚环" }
+      ]
+    },
+    template: {
+      title: "閫夋嫨娑堟伅妯℃澘",
+      url: "/api/index/get_template",
+      area: ["600px", "568px"],
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "娑堟伅妯℃澘鍚嶇О" }
+      ]
+    },
+    workcate: {
+      title: "閫夋嫨宸ヤ綔绫诲瀷",
+      url: "/api/index/get_work_cate",
+      area: ["400px", "524px"],
+      searchbar: "",
+      page: false,
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "宸ヤ綔绫诲瀷鍚嶇О" }
+      ]
+    },
+    property: {
+      title: "閫夋嫨鍥哄畾璧勪骇",
+      url: "/adm/api/get_property",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "璧勪骇鍚嶇О" }
+      ]
+    },
+    car: {
+      title: "閫夋嫨杞﹁締淇℃伅",
+      url: "/adm/api/get_car",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "杞﹁締鍚嶇О" },
+        { field: "name", width: 100, title: "杞︾墝鍙风爜", align: "center" }
+      ]
+    },
+    room: {
+      title: "閫夋嫨浼氳瀹�",
+      url: "/adm/api/get_meeting_room",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "浼氳瀹ゅ悕绉�" },
+        { field: "num", width: 100, title: "鍙绾充汉鏁�", align: "center" }
+      ]
+    },
+    customer: {
+      title: "閫夋嫨瀹㈡埛",
+      url: "/customer/api/get_customer",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "name", title: "瀹㈡埛鍚嶇О" }
+      ]
+    },
+    supplier: {
+      title: "閫夋嫨渚涘簲鍟�",
+      url: "/contract/api/get_supplier",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "渚涘簲鍟嗗悕绉�" }
+      ]
+    },
+    contract: {
+      title: "閫夋嫨閿�鍞悎鍚�",
+      url: "/contract/api/get_contract",
+      area: ["800px", "568px"],
+      cols: [
+        { field: "code", width: 160, title: "鍚堝悓缂栧彿", align: "center" },
+        { field: "name", title: "鍚堝悓鍚嶇О" },
+        { field: "customer", title: "鍏宠仈瀹㈡埛", width: 240 }
+      ]
+    },
+    product: {
+      title: "閫夋嫨浜у搧",
+      url: "/contract/api/get_product",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "浜у搧鍚嶇О" },
+        { field: "sale_price", title: "閿�鍞崟浠�", width: 120, align: "center" }
+      ]
+    },
+    purchase: {
+      title: "閫夋嫨閲囪喘鍚堝悓",
+      url: "/contract/api/get_purchase",
+      area: ["800px", "568px"],
+      cols: [
+        { field: "code", width: 160, title: "鍚堝悓缂栧彿", align: "center" },
+        { field: "name", title: "鍚堝悓鍚嶇О" },
+        { field: "supplier", title: "鍏宠仈渚涘簲鍟�", width: 240 }
+      ]
+    },
+    purchased: {
+      title: "閫夋嫨閲囪喘鐗╁搧",
+      url: "/contract/api/get_purchased",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "閲囪喘鐗╁搧鍚嶇О" },
+        {
+          field: "purchase_price",
+          title: "閲囪喘鍗曚环",
+          width: 120,
+          align: "center"
+        }
+      ]
+    },
+    project: {
+      title: "閫夋嫨椤圭洰",
+      url: "/project/api/get_project",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "椤圭洰鍚嶇О" }
+      ]
+    },
+    task: {
+      title: "閫夋嫨浠诲姟",
+      url: "/project/api/get_task",
+      area: ["800px", "568px"],
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "title", title: "浠诲姟涓婚" },
+        { field: "project", width: 240, title: "鍏宠仈椤圭洰" }
+      ]
+    },
+    workPlan: {
+      title: "閫夋嫨鐝",
+      url: "/user/api/get_work_plan",
+      cols: [
+        { field: "id", width: 90, title: "搴忓彿", align: "center" },
+        { field: "name", title: "鐝鍚嶇О" },
+        {
+          field: "time",
+          width: 240,
+          title: "鑰冨嫟鏃堕棿"
+        }
+      ]
+    }
+  };
+
+  let select_ids = [];
+  select_names = [];
+  select_array = [];
+  const obj = {
+    employeeRender: function () {
+      var me = this,
+        letterTem = "";
+      for (var i = 0; i < 26; i++) {
+        letterTem +=
+          '<span class="layui-letter-span" data-code="' +
+          String.fromCharCode(97 + i) +
+          '">' +
+          String.fromCharCode(65 + i) +
+          "</span>";
+      }
+      var tpl =
+        '<div style="width:210px; height:388px; border-right:1px solid #eee; overflow-x: hidden; overflow-y: auto; float:left;">\
 							<div id="employeeDepament" style="padding:6px 0;"></div>\
 						</div>\
 						<div style="width:588px; height:388px; user-select:none; overflow-x: hidden; overflow-y: auto; float:left;">\
-							<div style="padding:12px 10px 0;"><div style="color:#999; text-align:center;">鈬� 鐐瑰嚮宸﹁竟閮ㄩ棬绛涢�夊憳宸ワ紝鎴栬�呯偣鍑讳笅闈㈠瓧姣嶇瓫閫�</div><div id="letterBar" style="color:#999; text-align:center;">'+letterTem+'</div></div>\
+							<div style="padding:12px 10px 0;"><div style="color:#999; text-align:center;">鈬� 鐐瑰嚮宸﹁竟閮ㄩ棬绛涢�夊憳宸ワ紝鎴栬�呯偣鍑讳笅闈㈠瓧姣嶇瓫閫�</div><div id="letterBar" style="color:#999; text-align:center;">' +
+        letterTem +
+        '</div></div>\
 							<div id="employee" style="padding:6px 12px"></div>\
 							<div style="padding:10px 15px; border-top:1px solid #eee;;"><strong>宸查�夋嫨</strong><span class="layui-tags-all">鍏ㄩ��</span></div>\
-							<div id="selectTags" style="padding:10px 15px;">'+me.employeeSelect(0)+'</div>\
-						</div>';
-			return tpl;
-		},
-		employeeSelect:function(t){
-			var me=this,select_tags='';
-			if(me.settings.type == 0){
-				select_tags+='<span style="color:#1E9FFF">'+me.settings.names+'</span>';
-			}
-			else{
-				select_ids=[];
-				select_names=[];
-				for(var a=0;a<select_array.length;a++){
-					if(me.settings.fixedid==select_array[a].id && me.settings.fixedid!=0){
-						select_tags+='<span class="layui-tags-span">'+select_array[a].name+'</span>';
-					}
-					else{
-						select_tags+='<span class="layui-tags-span">'+select_array[a].name+'<i data-id="'+select_array[a].id+'" class="layui-icon layui-tags-close">醼�</i></span>';
-					}
-					if(t==1){
-						$('#employee').find('[data-id="'+select_array[a].id+'"]').addClass('on');
-					}
-					select_ids.push(parseInt(select_array[a].id));
-					select_names.push(select_array[a].name);
-				}
-			}
-			//console.log(select_array);
-			return select_tags;
-		},
-		employeeInit: function (options) {
-			const opts={
-				"title":"閫夋嫨鍛樺伐",
-				"department_url": "/api/index/get_department_tree",
-				"employee_url": "/api/index/get_employee",
-				"type":1,//1鍗曚汉,2澶氫汉
-				"fixedid":0,
-				"ids":"",
-				"names":"",
-				"ajax_data":[],
-				"callback": function(){}
-			};
-			this.settings = $.extend({}, opts, options);
-			var me=this;
-			select_ids=[];
-			select_names=[];
-			select_array=[];
-			if(me.settings.ids!='' && me.settings.names!=''){
-				select_ids=me.settings.ids.split(',');
-				select_names=me.settings.names.split(',');
-				select_ids.sort((a, b) => a - b);
-				for(var m=0;m<select_ids.length;m++){
-					select_array.push({id:select_ids[m],name:select_names[m]});
-				}
-			}
-			$(parent.$('.express-close')).addClass('parent-colse');
-			layer.open({
-				type:1,
-				title:me.settings.title,
-				area:['800px','500px'],
-				resize:false,
-				content:me.employeeRender(),
-				end: function(){
-					$(parent.$('.express-close')).removeClass('parent-colse');
-				},
-				success:function(obj,idx){
-						var dataList=[],letterBar=$('#letterBar'),employee = $('#employee'),selectTags = $('#selectTags');
-						$.ajax({
-							url:me.settings.department_url,
-							type:'get',
-							success:function(res){			
-								//浠呰妭鐐瑰乏渚у浘鏍囨帶鍒舵敹缂�
-								tree.render({
-									elem: '#employeeDepament',
-									data: res.trees,
-									onlyIconControl: true,  //鏄惁浠呭厑璁歌妭鐐瑰乏渚у浘鏍囨帶鍒跺睍寮�鏀剁缉
-									click: function(obj){
-										var tagsItem='<div style="color:#999; text-align:center;">鏆傛棤鍛樺伐</div>';
-										$("#employeeDepament").find('.layui-tree-main').removeClass('on');
-										$(obj.elem).find('.layui-tree-main').eq(0).addClass('on');
-										letterBar.find('span').removeClass('on');
-										$.ajax({
-											url:me.settings.employee_url,
-											type:'get',
-											data:{did:obj.data.id},
-											success:function(res){
-												me.ajax_data = res.data;
-												dataList=me.ajax_data;
-												if(dataList.length>1 && me.settings.type == 2){
-													$('.layui-tags-all').show();
-												}
-												else{
-													$('.layui-tags-all').hide();
-												}
-												if(dataList.length>0){
-													tagsItem='';
-													for(var i=0; i<dataList.length; i++){
-														if(select_ids.indexOf(dataList[i].id) == -1){
-															tagsItem+='<span class="layui-tags-span" data-idx="'+i+'" data-id="'+dataList[i].id+'">'+dataList[i].name+'</span>';
-														}
-														else{
-															tagsItem+='<span class="layui-tags-span on" data-idx="'+i+'" data-id="'+dataList[i].id+'">'+dataList[i].name+'</span>';
-														}
-													}
-												}
-												employee.html(tagsItem);
-											}
-										})
-									}
-								});	
-								
-								letterBar.on("click" ,'span',function(){
-									var code=$(this).data('code');
-									$(this).addClass('on').siblings().removeClass('on');
-									$.ajax({
-										url:me.settings.employee_url,
-										type:'get',
-										data:{id:1},
-										success:function(res){	
-											me.ajax_data = res.data;
-											var letterData=[],tagsItem='<div style="color:#999; text-align:center;">鏆傛棤鍛樺伐</div>';;
-											if(me.ajax_data.length>0){
-												var tagsItemCode='';
-												for(var i=0; i<me.ajax_data.length; i++){
-													if(me.ajax_data[i].username.slice(0,1)==code){
-														if(select_ids.indexOf(me.ajax_data[i].id) == -1){
-															tagsItemCode+='<span class="layui-tags-span" data-idx="'+i+'" data-id="'+me.ajax_data[i].id+'">'+me.ajax_data[i].name+'</span>';
-														}
-														else{
-															tagsItemCode+='<span class="layui-tags-span on" data-idx="'+i+'" data-id="'+me.ajax_data[i].id+'">'+me.ajax_data[i].name+'</span>';
-														}
-														letterData.push(me.ajax_data[i]);
-													}
-												}
-												dataList=letterData;
-												if(dataList.length>2 && me.settings.type == 2){
-													$('.layui-tags-all').show();
-												}
-												else{
-													$('.layui-tags-all').hide();
-												}
-												if(tagsItemCode!=''){
-													tagsItem = tagsItemCode;
-												}
-											}
-											employee.html(tagsItem);
-										}
-									})
-								});								
-							}
-						})
-						
-						if(me.settings.type == 2){
-							$('.layui-tags-all').on('click',function(){
-								for(var a=0; a<dataList.length;a++){
-									if(select_ids.indexOf(dataList[a]['id']) == -1){
-										select_array.push(dataList[a]);;
-									}									
-								}
-								selectTags.html(me.employeeSelect(1));	
-							});
-						}					
-						
-						employee.on('click','.layui-tags-span',function(){
-							let item_idx=$(this).data('idx');
-							let select_item = me.ajax_data[item_idx];
-							if(me.settings.type == 1){
-								me.settings.callback([select_item]);
-								layer.close(idx);
-							}
-							else{
-								if(select_ids.indexOf(select_item['id']) == -1){
-									select_array.push(select_item);
-									selectTags.html(me.employeeSelect(1));	
-								}
-							}					
-						});
-						
-						selectTags.on('click','.layui-tags-close',function(){
-							let id=$(this).data('id');
-							let new_slected=[];
-							$('#employee').find('[data-id="'+id+'"]').removeClass('on');
-							for(var i=0;i<select_array.length;i++){
-								if(select_array[i].id!=id){
-									new_slected.push(select_array[i]);
-								}
-							}
-							select_array=new_slected;
-							selectTags.html(me.employeeSelect(1));
-						});
-						if(me.settings.type == 1){
-							$('#layui-layer'+idx).find('.layui-layer-btn0').hide();
-						}						
-					},
-					btn: ['纭畾娣诲姞', '娓呯┖宸查��'],
-					btnAlign:'c',
-					btn1: function(idx){
-						me.settings.callback(select_array);
-						layer.close(idx);
-					},
-					btn2: function(idx){
-						let canceldata= {department:"",did:0,id:0,mobile:0,name:"",nickname:"",position_id:0,sex:0,status:0,thumb:"",username:""};
-						me.settings.callback([canceldata]);
-						layer.close(idx);
-					}
-			})	
-		},
-		picker:function(types,type,callback,map){
-			let pickerIndex = new Date().getTime();
-			let pickerTable,options;
-			const opts={
-				"title":"閫夋嫨",
-				"url": "",
-				"ids":"",
-				"titles":"",
-				"where":map,
-				"area": ['600px', '568px'],
-				"cols":[{field: 'id',width: 80,title:'搴忓彿',align:'center'},{field:'title',title:'鍚嶇О'}],
-				"searchbar":'<form class="layui-form pb-2"><div class="layui-input-inline" style="width:420px; margin-right:5px;"><input type="text" name="keywords" placeholder="璇疯緭鍏ュ叧閿瓧" class="layui-input" autocomplete="off" /></div><button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="picker">鎻愪氦鎼滅储</button><button type="reset" class="layui-btn layui-btn-reset" lay-filter="picker-reset">娓呯┖</button></form>',
-				"page":true,
-				"type":type,//1鍗曢�夋嫨,2澶氶��
-				"btnno":true,
-				"add": "",//鏂板url
-				"callback": callback
-			};
-			if(Object.prototype.toString.call(types) === '[object Object]'){
-				options = types;
-			}
-			else{
-				options = dataPicker[types];
-			}
-			let settings = $.extend({},opts,options);
-			//console.log(settings);
-			let btn = ['纭畾閫夋嫨'];
-			if(settings.btnno==true){
-				btn = ['纭畾閫夋嫨','娓呯┖宸查��'];
-			}
-			if(settings.add!=''){
-				btn = ['纭畾閫夋嫨','娓呯┖宸查��','鏂板'];
-			}
-			$(parent.$('.express-close')).addClass('parent-colse');
-			layer.open({
-				title: settings.title,
-				area: settings.area,
-				type: 1,
-				skin: 'gougu-picker',
-				content: '<div class="picker-table" id="pickerBox'+pickerIndex+'">'+settings.searchbar+'<div id="pickerTable'+pickerIndex+'"></div></div>',
-				end: function(){
-					$(parent.$('.express-close')).removeClass('parent-colse');
-				},
-				success: function () {
-					let cols=JSON.parse(JSON.stringify(settings.cols));
-					if(settings.type==1){
-						cols.splice(0, 0, {type: 'radio', title: '閫夋嫨'});
-					}
-					if(settings.type==2){
-						cols.splice(0, 0, {type: 'checkbox', title: '閫夋嫨'});
-					}
-					pickerTable = table.render({
-						elem: '#pickerTable'+pickerIndex,
-						url: settings.url,
-						where:settings.where,
-						page: settings.page, //寮�鍚垎椤�
-						limit: 10,
-						height: '407',
-						cols: [cols]
-					});
-					//鎼滅储鎻愪氦
-					form.on('submit(picker)', function (data) {
-						let maps = $.extend({}, settings.where, data.field);
-						pickerTable.reload({where:maps,page:{curr: 1}});
-						return false;
-					});
-					//閲嶇疆鎼滅储鎻愪氦
-					$('#pickerBox'+pickerIndex).on('click', '[lay-filter="picker-reset"]', function () {
-						let prev = $(this).prev();
-						if (typeof(prev) != "undefined" ) {
-							setTimeout(function () {
-								prev.click();
-							}, 10)
-						}
-					});	
-				},
-				btn: btn,
-				btnAlign: 'c',
-				btn1: function (idx) {
-					var checkStatus = table.checkStatus(pickerTable.config.id);
-					var data = checkStatus.data;
-					if (data.length > 0) {
-						callback(data);
-						layer.close(idx);
-					}
-					else {
-						layer.msg('璇峰厛閫夋嫨鍐呭');
-						return false;
-					}
-				},
-				btn2: function (idx) {
-					callback([{'id':0,'title':'','name':''}]);
-					layer.close(idx);
-				},
-				btn3: function (idx) {
-					tool.side(settings.add);
-					layer.close(idx);
-				}
-			})
-		}
-	}
-	
-	//閫夋嫨鍛樺伐寮圭獥		
-	$('body').on('click','.picker-admin',function () {
-		let that = $(this);
-		let type = that.data('type');
-		if (typeof(type) == "undefined" || type == '') {
-			type = 1;
-		}
-		let ids=that.next().val()+'',names = that.val()+'';
-		obj.employeeInit({
-			ids:ids,
-			names:names,
-			type:type,
-			callback:function(data){
-				let select_id=[],select_name=[];
-				for(var a=0; a<data.length;a++){
-					select_id.push(data[a].id);
-					select_name.push(data[a].name);
-				}
-				console.log(select_name);
-				that.val(select_name.join(','));
-				that.next().val(select_id.join(','));
-			}
-		});
-	});
-	
-	//閫夋嫨涓嬪睘鍛樺伐寮圭獥		
-	$('body').on('click','.picker-sub',function () {
-		let that = $(this);
-		let type = that.data('type');
-		if (typeof(type) == "undefined" || type == '') {
-			type = 1;
-		}
-		let ids=that.next().val()+'',names = that.val()+'';
-		obj.employeeInit({
-			title:"閫夋嫨涓嬪睘",
-			department_url: "/api/index/get_department_tree_sub",
-			employee_url: "/api/index/get_employee_sub",
-			ids:ids,
-			names:names,
-			type:type,
-			callback:function(data){
-				let select_id=[],select_name=[];
-				for(var a=0; a<data.length;a++){
-					select_id.push(data[a].id);
-					select_name.push(data[a].name);
-				}
-				console.log(select_name);
-				that.val(select_name.join(','));
-				that.next().val(select_id.join(','));
-			}
-		});
-	});
-	
-	//閫夋嫨OA鏁版嵁寮瑰眰	
-	$('body').on('click','.picker-oa',function () {
-		let that = $(this),ids = [],titles=[],map = {};
-		let types = that.data('types');
-		let type = that.data('type');
-		let where = that.data('where');
-		if (typeof(types) == "undefined" || types == '') {
-			layer.msg('璇疯缃�恜icker銆戠殑绫诲瀷');
-			return false;
-		}
-		if (typeof(type) == "undefined" || type == '') {
-			type = 1;
-		}
-		if (typeof(where) == "undefined" || where == '') {
-			map = {};
-		}
-		else{
-			map = JSON.parse(where);
-		}
-		let callback = function(data){
-			for ( var i = 0; i <data.length; i++){
-				ids.push(data[i].id);
-				if(!data[i].title){
-					titles.push(data[i].name);
-				}else{
-					titles.push(data[i].title);
-				}				
-			}
-			that.val(titles.join(','));
-			that.next().val(ids.join(','));
-		}
-		obj.picker(types,type,callback,map);
-	});
-	
-	//杈撳嚭鎺ュ彛
-	exports('oaPicker', obj);
-});   
\ No newline at end of file
+							<div id="selectTags" style="padding:10px 15px;">' +
+        me.employeeSelect(0) +
+        "</div>\
+						</div>";
+      return tpl;
+    },
+    employeeSelect: function (t) {
+      var me = this,
+        select_tags = "";
+      if (me.settings.type == 0) {
+        select_tags +=
+          '<span style="color:#1E9FFF">' + me.settings.names + "</span>";
+      } else {
+        select_ids = [];
+        select_names = [];
+        for (var a = 0; a < select_array.length; a++) {
+          if (
+            me.settings.fixedid == select_array[a].id &&
+            me.settings.fixedid != 0
+          ) {
+            select_tags +=
+              '<span class="layui-tags-span">' +
+              select_array[a].name +
+              "</span>";
+          } else {
+            select_tags +=
+              '<span class="layui-tags-span">' +
+              select_array[a].name +
+              '<i data-id="' +
+              select_array[a].id +
+              '" class="layui-icon layui-tags-close">醼�</i></span>';
+          }
+          if (t == 1) {
+            $("#employee")
+              .find('[data-id="' + select_array[a].id + '"]')
+              .addClass("on");
+          }
+          select_ids.push(parseInt(select_array[a].id));
+          select_names.push(select_array[a].name);
+        }
+      }
+      //console.log(select_array);
+      return select_tags;
+    },
+    employeeInit: function (options) {
+      const opts = {
+        title: "閫夋嫨鍛樺伐",
+        department_url: "/api/index/get_department_tree",
+        employee_url: "/api/index/get_employee",
+        type: 1, //1鍗曚汉,2澶氫汉
+        fixedid: 0,
+        ids: "",
+        names: "",
+        ajax_data: [],
+        callback: function () {}
+      };
+      this.settings = $.extend({}, opts, options);
+      var me = this;
+      select_ids = [];
+      select_names = [];
+      select_array = [];
+      if (me.settings.ids != "" && me.settings.names != "") {
+        select_ids = me.settings.ids.split(",");
+        select_names = me.settings.names.split(",");
+        select_ids.sort((a, b) => a - b);
+        for (var m = 0; m < select_ids.length; m++) {
+          select_array.push({ id: select_ids[m], name: select_names[m] });
+        }
+      }
+      $(parent.$(".express-close")).addClass("parent-colse");
+      layer.open({
+        type: 1,
+        title: me.settings.title,
+        area: ["800px", "500px"],
+        resize: false,
+        content: me.employeeRender(),
+        end: function () {
+          $(parent.$(".express-close")).removeClass("parent-colse");
+        },
+        success: function (obj, idx) {
+          var dataList = [],
+            letterBar = $("#letterBar"),
+            employee = $("#employee"),
+            selectTags = $("#selectTags");
+          $.ajax({
+            url: me.settings.department_url,
+            type: "get",
+            success: function (res) {
+              //浠呰妭鐐瑰乏渚у浘鏍囨帶鍒舵敹缂�
+              tree.render({
+                elem: "#employeeDepament",
+                data: res.trees,
+                onlyIconControl: true, //鏄惁浠呭厑璁歌妭鐐瑰乏渚у浘鏍囨帶鍒跺睍寮�鏀剁缉
+                click: function (obj) {
+                  var tagsItem =
+                    '<div style="color:#999; text-align:center;">鏆傛棤鍛樺伐</div>';
+                  $("#employeeDepament")
+                    .find(".layui-tree-main")
+                    .removeClass("on");
+                  $(obj.elem).find(".layui-tree-main").eq(0).addClass("on");
+                  letterBar.find("span").removeClass("on");
+                  $.ajax({
+                    url: me.settings.employee_url,
+                    type: "get",
+                    data: { did: obj.data.id },
+                    success: function (res) {
+                      me.ajax_data = res.data;
+                      dataList = me.ajax_data;
+                      if (dataList.length > 1 && me.settings.type == 2) {
+                        $(".layui-tags-all").show();
+                      } else {
+                        $(".layui-tags-all").hide();
+                      }
+                      if (dataList.length > 0) {
+                        tagsItem = "";
+                        for (var i = 0; i < dataList.length; i++) {
+                          if (select_ids.indexOf(dataList[i].id) == -1) {
+                            tagsItem +=
+                              '<span class="layui-tags-span" data-idx="' +
+                              i +
+                              '" data-id="' +
+                              dataList[i].id +
+                              '">' +
+                              dataList[i].name +
+                              "</span>";
+                          } else {
+                            tagsItem +=
+                              '<span class="layui-tags-span on" data-idx="' +
+                              i +
+                              '" data-id="' +
+                              dataList[i].id +
+                              '">' +
+                              dataList[i].name +
+                              "</span>";
+                          }
+                        }
+                      }
+                      employee.html(tagsItem);
+                    }
+                  });
+                }
+              });
+
+              letterBar.on("click", "span", function () {
+                var code = $(this).data("code");
+                $(this).addClass("on").siblings().removeClass("on");
+                $.ajax({
+                  url: me.settings.employee_url,
+                  type: "get",
+                  data: { id: 1 },
+                  success: function (res) {
+                    me.ajax_data = res.data;
+                    var letterData = [],
+                      tagsItem =
+                        '<div style="color:#999; text-align:center;">鏆傛棤鍛樺伐</div>';
+                    if (me.ajax_data.length > 0) {
+                      var tagsItemCode = "";
+                      for (var i = 0; i < me.ajax_data.length; i++) {
+                        if (me.ajax_data[i].username.slice(0, 1) == code) {
+                          if (select_ids.indexOf(me.ajax_data[i].id) == -1) {
+                            tagsItemCode +=
+                              '<span class="layui-tags-span" data-idx="' +
+                              i +
+                              '" data-id="' +
+                              me.ajax_data[i].id +
+                              '">' +
+                              me.ajax_data[i].name +
+                              "</span>";
+                          } else {
+                            tagsItemCode +=
+                              '<span class="layui-tags-span on" data-idx="' +
+                              i +
+                              '" data-id="' +
+                              me.ajax_data[i].id +
+                              '">' +
+                              me.ajax_data[i].name +
+                              "</span>";
+                          }
+                          letterData.push(me.ajax_data[i]);
+                        }
+                      }
+                      dataList = letterData;
+                      if (dataList.length > 2 && me.settings.type == 2) {
+                        $(".layui-tags-all").show();
+                      } else {
+                        $(".layui-tags-all").hide();
+                      }
+                      if (tagsItemCode != "") {
+                        tagsItem = tagsItemCode;
+                      }
+                    }
+                    employee.html(tagsItem);
+                  }
+                });
+              });
+            }
+          });
+
+          if (me.settings.type == 2) {
+            $(".layui-tags-all").on("click", function () {
+              for (var a = 0; a < dataList.length; a++) {
+                if (select_ids.indexOf(dataList[a]["id"]) == -1) {
+                  select_array.push(dataList[a]);
+                }
+              }
+              selectTags.html(me.employeeSelect(1));
+            });
+          }
+
+          employee.on("click", ".layui-tags-span", function () {
+            let item_idx = $(this).data("idx");
+            let select_item = me.ajax_data[item_idx];
+            if (me.settings.type == 1) {
+              me.settings.callback([select_item]);
+              layer.close(idx);
+            } else {
+              if (select_ids.indexOf(select_item["id"]) == -1) {
+                select_array.push(select_item);
+                selectTags.html(me.employeeSelect(1));
+              }
+            }
+          });
+
+          selectTags.on("click", ".layui-tags-close", function () {
+            let id = $(this).data("id");
+            let new_slected = [];
+            $("#employee")
+              .find('[data-id="' + id + '"]')
+              .removeClass("on");
+            for (var i = 0; i < select_array.length; i++) {
+              if (select_array[i].id != id) {
+                new_slected.push(select_array[i]);
+              }
+            }
+            select_array = new_slected;
+            selectTags.html(me.employeeSelect(1));
+          });
+          if (me.settings.type == 1) {
+            $("#layui-layer" + idx)
+              .find(".layui-layer-btn0")
+              .hide();
+          }
+        },
+        btn: ["纭畾娣诲姞", "娓呯┖宸查��"],
+        btnAlign: "c",
+        btn1: function (idx) {
+          me.settings.callback(select_array);
+          layer.close(idx);
+        },
+        btn2: function (idx) {
+          let canceldata = {
+            department: "",
+            did: 0,
+            id: 0,
+            mobile: 0,
+            name: "",
+            nickname: "",
+            position_id: 0,
+            sex: 0,
+            status: 0,
+            thumb: "",
+            username: ""
+          };
+          me.settings.callback([canceldata]);
+          layer.close(idx);
+        }
+      });
+    },
+    picker: function (types, type, callback, map) {
+      let pickerIndex = new Date().getTime();
+      let pickerTable, options;
+      const opts = {
+        title: "閫夋嫨",
+        url: "",
+        ids: "",
+        titles: "",
+        where: map,
+        area: ["600px", "568px"],
+        cols: [
+          { field: "id", width: 80, title: "搴忓彿", align: "center" },
+          { field: "title", title: "鍚嶇О" }
+        ],
+        searchbar:
+          '<form class="layui-form pb-2"><div class="layui-input-inline" style="width:420px; margin-right:5px;"><input type="text" name="keywords" placeholder="璇疯緭鍏ュ叧閿瓧" class="layui-input" autocomplete="off" /></div><button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="picker">鎻愪氦鎼滅储</button><button type="reset" class="layui-btn layui-btn-reset" lay-filter="picker-reset">娓呯┖</button></form>',
+        page: true,
+        type: type, //1鍗曢�夋嫨,2澶氶��
+        btnno: true,
+        add: "", //鏂板url
+        callback: callback
+      };
+      if (Object.prototype.toString.call(types) === "[object Object]") {
+        options = types;
+      } else {
+        options = dataPicker[types];
+      }
+      let settings = $.extend({}, opts, options);
+      //console.log(settings);
+      let btn = ["纭畾閫夋嫨"];
+      if (settings.btnno == true) {
+        btn = ["纭畾閫夋嫨", "娓呯┖宸查��"];
+      }
+      if (settings.add != "") {
+        btn = ["纭畾閫夋嫨", "娓呯┖宸查��", "鏂板"];
+      }
+      $(parent.$(".express-close")).addClass("parent-colse");
+      layer.open({
+        title: settings.title,
+        area: settings.area,
+        type: 1,
+        skin: "gougu-picker",
+        content:
+          '<div class="picker-table" id="pickerBox' +
+          pickerIndex +
+          '">' +
+          settings.searchbar +
+          '<div id="pickerTable' +
+          pickerIndex +
+          '"></div></div>',
+        end: function () {
+          $(parent.$(".express-close")).removeClass("parent-colse");
+        },
+        success: function () {
+          let cols = JSON.parse(JSON.stringify(settings.cols));
+          if (settings.type == 1) {
+            cols.splice(0, 0, { type: "radio", title: "閫夋嫨" });
+          }
+          if (settings.type == 2) {
+            cols.splice(0, 0, { type: "checkbox", title: "閫夋嫨" });
+          }
+          // 鍗曠嫭澶勭悊
+          // 鐝鐨勫垪鏍煎紡鍖栨樉绀�
+          if (types == "workPlan") {
+            cols[cols.length - 1].templet = function (d) {
+              var html = "";
+              if (d.times && d.times.length) {
+                for (var i = 0; i < d.times.length; i++) {
+                  html +=
+                    "<span style='margin-right: 30px'>" +
+                    d.times[i].begin_time +
+                    " - " +
+                    d.times[i].end_time +
+                    "</span>";
+                }
+              } else {
+                html = "-";
+              }
+              return html;
+            };
+          }
+          pickerTable = table.render({
+            elem: "#pickerTable" + pickerIndex,
+            url: settings.url,
+            where: settings.where,
+            page: settings.page, //寮�鍚垎椤�
+            limit: 10,
+            height: "407",
+            cols: [cols]
+          });
+          //鎼滅储鎻愪氦
+          form.on("submit(picker)", function (data) {
+            let maps = $.extend({}, settings.where, data.field);
+            pickerTable.reload({ where: maps, page: { curr: 1 } });
+            return false;
+          });
+          //閲嶇疆鎼滅储鎻愪氦
+          $("#pickerBox" + pickerIndex).on(
+            "click",
+            '[lay-filter="picker-reset"]',
+            function () {
+              let prev = $(this).prev();
+              if (typeof prev != "undefined") {
+                setTimeout(function () {
+                  prev.click();
+                }, 10);
+              }
+            }
+          );
+        },
+        btn: btn,
+        btnAlign: "c",
+        btn1: function (idx) {
+          var checkStatus = table.checkStatus(pickerTable.config.id);
+          var data = checkStatus.data;
+          if (data.length > 0) {
+            callback(data);
+            layer.close(idx);
+          } else {
+            layer.msg("璇峰厛閫夋嫨鍐呭");
+            return false;
+          }
+        },
+        btn2: function (idx) {
+          callback([{ id: 0, title: "", name: "" }]);
+          layer.close(idx);
+        },
+        btn3: function (idx) {
+          tool.side(settings.add);
+          layer.close(idx);
+        }
+      });
+    }
+  };
+
+  //閫夋嫨鍛樺伐寮圭獥
+  $("body").on("click", ".picker-admin", function () {
+    let that = $(this);
+    let type = that.data("type");
+    if (typeof type == "undefined" || type == "") {
+      type = 1;
+    }
+    let ids = that.next().val() + "",
+      names = that.val() + "";
+    obj.employeeInit({
+      ids: ids,
+      names: names,
+      type: type,
+      callback: function (data) {
+        let select_id = [],
+          select_name = [];
+        for (var a = 0; a < data.length; a++) {
+          select_id.push(data[a].id);
+          select_name.push(data[a].name);
+        }
+        console.log(select_name);
+        that.val(select_name.join(","));
+        that.next().val(select_id.join(","));
+      }
+    });
+  });
+
+  //閫夋嫨涓嬪睘鍛樺伐寮圭獥
+  $("body").on("click", ".picker-sub", function () {
+    let that = $(this);
+    let type = that.data("type");
+    if (typeof type == "undefined" || type == "") {
+      type = 1;
+    }
+    let ids = that.next().val() + "",
+      names = that.val() + "";
+    obj.employeeInit({
+      title: "閫夋嫨涓嬪睘",
+      department_url: "/api/index/get_department_tree_sub",
+      employee_url: "/api/index/get_employee_sub",
+      ids: ids,
+      names: names,
+      type: type,
+      callback: function (data) {
+        let select_id = [],
+          select_name = [];
+        for (var a = 0; a < data.length; a++) {
+          select_id.push(data[a].id);
+          select_name.push(data[a].name);
+        }
+        console.log(select_name);
+        that.val(select_name.join(","));
+        that.next().val(select_id.join(","));
+      }
+    });
+  });
+
+  //閫夋嫨OA鏁版嵁寮瑰眰
+  $("body").on("click", ".picker-oa", function () {
+    let that = $(this),
+      ids = [],
+      titles = [],
+      map = {};
+    let types = that.data("types");
+    let type = that.data("type");
+    let where = that.data("where");
+    if (typeof types == "undefined" || types == "") {
+      layer.msg("璇疯缃�恜icker銆戠殑绫诲瀷");
+      return false;
+    }
+    if (typeof type == "undefined" || type == "") {
+      type = 1;
+    }
+    if (typeof where == "undefined" || where == "") {
+      map = {};
+    } else {
+      map = JSON.parse(where);
+    }
+    let callback = function (data) {
+      for (var i = 0; i < data.length; i++) {
+        ids.push(data[i].id);
+        if (!data[i].title) {
+          titles.push(data[i].name);
+        } else {
+          titles.push(data[i].title);
+        }
+      }
+      that.val(titles.join(","));
+      that.next().val(ids.join(","));
+      // 鍗曠嫭澶勭悊鐝鎸夐挳鐨勫鐞嗙粨鏋�
+      if (types == "workPlan") {
+        var selectName = data[0].name;
+        var html = "";
+        if (selectName) {
+          html += selectName + "锛�";
+        }
+        if (data[0].times && data[0].times.length) {
+          for (var i = 0; i < data[0].times.length; i++) {
+            var timeItem = data[0].times[i];
+            html +=
+              "<span style='margin-right: 30px'>" +
+              timeItem.begin_time +
+              " - " +
+              timeItem.end_time +
+              "</span>";
+          }
+        }
+        that.parent().prev().html(html);
+      }
+    };
+    obj.picker(types, type, callback, map);
+  });
+
+  //杈撳嚭鎺ュ彛
+  exports("oaPicker", obj);
+});

--
Gitblit v1.9.1