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:'关联项目'}] } } let select_ids=[];select_names=[];select_array=[]; const obj = { employeeRender:function(){ var me=this,letterTem=''; for(var i=0;i<26;i++){ letterTem+=''+String.fromCharCode(65+i)+''; } var tpl='
\
\
\
\
⇐ 点击左边部门筛选员工,或者点击下面字母筛选
'+letterTem+'
\
\
已选择全选
\
'+me.employeeSelect(0)+'
\
'; return tpl; }, employeeSelect:function(t){ var me=this,select_tags=''; if(me.settings.type == 0){ select_tags+=''+me.settings.names+''; } else{ select_ids=[]; select_names=[]; for(var a=0;a'; } else{ select_tags+=''+select_array[a].name+''; } 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;m1 && me.settings.type == 2){ $('.layui-tags-all').show(); } else{ $('.layui-tags-all').hide(); } if(dataList.length>0){ tagsItem=''; for(var i=0; i'+dataList[i].name+''; } else{ tagsItem+=''+dataList[i].name+''; } } } 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='
暂无员工
';; if(me.ajax_data.length>0){ var tagsItemCode=''; for(var i=0; i'+me.ajax_data[i].name+''; } else{ tagsItemCode+=''+me.ajax_data[i].name+''; } 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
', "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: '
'+settings.searchbar+'
', 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