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'+select_array[a].name+'';
}
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: '',
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