jdc_dkh_jxicustomer
Version:
JDC_dkh_jxicustomer ==== 产品经理:田宇,弥磊 设计:罗婷 交互:张钊
601 lines (570 loc) • 19.5 kB
JavaScript
define(function(require, exports, module) {
require('//misc.360buyimg.com/virtuals/popui/2.1.6/js/dialog/dialog');
var utils = require('./core/utils.js');
var TPL = require('./dialogTpl.js');
// 组织机构渲染
var setting = {
view: {
addDiyDom: addDiyDom,
selectedMulti: false,
showIcon: true,
showLine: false
},
edit: {
enable: false
},
data: {
simpleData: {
enable: true
}
}
};
var depName, depId ,treeType,
labelId,labelName, judge; //选中的部门/标签名称/id/类型
/*----------------------------弹窗内操作 start ----------------------------------------------------------*/
//节点处理
function addDiyDom(treeId, treeNode) {
var sObj = $("#" + treeNode.tId + "_span");
if ($("#addBtn_" + treeNode.tId).length > 0) return;
var aTitle = $('#'+ treeNode.tId +'_span');
getDep(aTitle, treeNode.id, treeNode.name);
};
//选择部门树形组织架构操作
function treeOperate(dom) {
$('.bp-input').focus(function() {
var pid = $('.bp-input').data('id');
//展开树内指定节点
var zTree_Menu = $.fn.zTree.getZTreeObj("dep-tree");
var node = zTree_Menu.getNodeByParam("id", pid);
zTree_Menu.selectNode(node,true);//指定选中ID的节点
zTree_Menu.expandNode(node, true, false);//指定选中ID节点展开
//隐藏的组织架构显示
dom.show();
$('.dep-list i').addClass('open');
});
}
//获取部门信息
function getDep(dom,id,name) {
if (dom) dom.bind("click", function() {
depName = name;
depId = id;
$('.bp-input').val(name);
$('.bp-input').data('id', id);
$('.dep-info').hide();
$('.dep-list i').removeClass('open');
//deleteSelectedDep();
});
}
//修改部门时组织架构的操作,添加选中的部门
function modifyDepTreeOp() {
$('.mc .r-arrow').on('click',function() {
var judge = judgeChoose(depId);
if(depId && depName && !judge) {
var li = `<li data-id="${depId}" title="${depName}"><i></i><span>${depName}</span><b class="del-icon"></b></li>`;
$('.dialog .mc .right ul.dep-ul').append(li);
deleteSelectedDep();
} else {
if(judge) {
alert('不可以重复选择部门!');
} else {
alert('请先选择部门!');
}
}
});
}
//修改标签时组织架构的操作,添加选中的标签
function modifyLabelTreeOp() {
$('.label-tree li').on('click', function() {
$(this).parent().find('.sel').removeClass('sel');
$(this).addClass('sel');
labelId = $(this).data('id');
labelName = $(this).prop('title');
});
$('.mc .r-arrow').on('click',function() {
var judge = judgeChoose(labelId);
if(labelId && labelName && !judge) {
var li = `<li data-id="${labelId}" title="${labelName}"><i></i><span>${labelName}</span><b class="del-icon"></b></li>`;
$('.dialog .mc .right ul.lb-ul').append(li);
deleteSelectedDep();
} else {
if(judge) {
alert('不可以重复选择标签!');
} else {
alert('请先选择标签!');
}
}
});
}
//删除已选中的部门
function deleteSelectedDep() {
$('.del-icon').hover(function() {
$(this).parent().parent().find('.hover').removeClass('hover');
$(this).parent().addClass('hover');
});
$('.del-icon').on('click', function() {
$(this).parent().remove();
});
}
//获取已选中的部门/标签信息
function getSelected() {
var arr = [];
$('.dialog .mc .right ul li').each(function(index,value) {
var name = $(this).prop('title');
var id = $(this).data('id');
var obj = {
id: id,
name: name
}
arr.push(obj);
});
return arr;
}
//判断所选的部门、标签是否在已选范围内
function judgeChoose(id) {
var selArr = getSelected();
$.each(selArr,function(index,value) {
if(id === value.id) {
judge = true;
}
});
return judge;
}
//搜索部门信息
function searchDep() {
var value = $('.dialog .s-input').val();
}
//初始化标签树
function initLabel(data) {
var li = '';
$.each(data, function(index,value) {
li += `<li title="${value.name}" data-id="${value.id}"><i class="lb-icon"></i><span>${value.name}</span></li>`;
});
$('.label-tree').append(li);
modifyLabelTreeOp();
}
/*----------------------------弹窗内操作 end ----------------------------------------------------------*/
function isEmpty(input, con) {
if(input.val() === "") {
con.addClass('error');
return false;
}else {
con.removeClass('error');
return true;
}
}
// 带图标的确认框
function comfirmWithIcon(opts) {
$.dialog({
hasTitle: false,
source: TPL.comfirmWithIconTPL(opts),
width: 420,
height: 260,
containerCls: 'dialog comfirm',
onSubmit: function(close) {
// console.log(opts.onSubmit)
close.click();
opts.sure() || null;
// opts.onSubmit();
},
onCancel: opts.onCancel || null
})
};
// 设置密码
function setPwd(opts) {
$.dialog({
hasTitle: false,
source: TPL.setPwdTpl(opts),
width: 420,
height: 418,
containerCls: 'dialog comfirm',
onSubmit: function(close) {
// console.log(opts.onSubmit)
opts.sure() || null;
// opts.onSubmit();
close.click();
},
onCancel: opts.onCancel || null
})
};
// 输入密码
function inPwd(opts) {
$.dialog({
hasTitle: false,
source: TPL.inPwdTpl(opts),
width: 420,
height: 244,
containerCls: 'dialog comfirm',
onSubmit: function(close) {
// console.log(opts.onSubmit)
opts.sure() || null;
// opts.onSubmit();
close.click();
},
// onCancel: opts.onCancel || null
})
}
// 积分分配
function deposit(opts) {
$.dialog({
hasTitle: false,
source: TPL.depositTpl(opts).content,
width: 544,
height: 604,
containerCls: 'dialog comfirm',
onSubmit: function(close) {
// console.log(opts.onSubmit)
opts.sure() || null;
// opts.onSubmit();
close.click();
},
// onCancel: opts.onCancel || null
})
}
function addText(opts) {
$.dialog({
title: opts.title,
source: TPL.addTextTpl(opts),
width: 544,
height: 294,
containerCls: 'dialog comfirm',
onSubmit: function(close) {
// console.log(opts.onSubmit)
opts.sure() || null;
// opts.onSubmit();
close.click();
},
// onCancel: opts.onCancel || null
})
}
function comfirm(opts) {
$.dialog({
hasTitle: false,
source: TPL.comfirmTPL(opts),
width: 420,
height: 260,
containerCls: 'dialog comfirm',
onSubmit: function(close) {
opts.onSubmit || null;
close.click();
},
onCancel: opts.onCancel || null
})
};
function addTypeDialog(opts) {
var dialog = $.dialog({
title: opts.title || '添加分类',
source: TPL.addTypeTPL(opts),
width: 540,
height: 432,
containerCls: 'dialog',
onSubmit: function(close) {
close.click();
},
onReady: function(dialog) {
dialog.find('.radio').on('click', function() {
dialog.find('.radio').removeClass('selected');
$(this).addClass('selected');
})
dialog.find('.surecls').on('click', function() {
})
dialog.find('.cancelcls').on('click', function() {
})
}
})
};
function addType1Dialog(opts) {
var dialog = $.dialog({
title: opts.title || '添加分类',
source: TPL.addType1TPL(opts),
width: 540,
height: 342,
containerCls: 'dialog',
onSubmit: function(close) {
close.click();
},
onReady: function(dialog) {
dialog.find('.radio').on('click', function() {
dialog.find('.radio').removeClass('selected');
$(this).addClass('selected');
})
dialog.find('.surecls').on('click', function() {
})
dialog.find('.cancelcls').on('click', function() {
})
}
})
};
function createSuiteDialog(opts) {
var dialog = $.dialog({
title: opts.title || '创建套餐',
source: TPL.createSuiteTPL(opts),
width: 540,
height: 350,
containerCls: 'dialog suite',
onReady: function(dialog) {
var close = dialog.find('.thickclose');
dialog.find('.radio').on('click', function() {
dialog.find('.radio').removeClass('selected');
$(this).addClass('selected');
})
dialog.find('.surecls').on('click', function() {
var n = dialog.find('.suite-name');
var j = dialog.find('.jf');
var result = true;
if(n.val() === "") {
n.closest('.input-txt').addClass('error');
result = false;
}else {
n.closest('.input-txt').removeClass('error');
}
if(j.val() === "") {
j.closest('.input-txt').addClass('error');
result = false;
}else {
n.closest('.input-txt').removeClass('error');
}
if(result) {
opts.onSubmit({
name: n.val(),
jf: j.val()
})
}
})
}
})
}
function downDialog(opts) {
var dialog = $.dialog({
title: opts.title || '批量录入',
source: TPL.downTPL(opts),
width: 540,
height: 288,
containerCls: 'dialog download',
onSubmit: function(close) {
close.click();
},
onReady: function(dialog) {
}
})
}
function alertSuccessDialog(opts) {
var dialog = $.dialog({
title: opts.title || '成功',
hasTitle: false,
source: TPL.alertSuccessDialog(opts),
width: 470,
countdown: opts.count || false
// height: 342,
// containerCls: 'dialog',
// onSubmit: function(close) {
// close.click();
// },
// onReady: function(dialog) {
// }
})
};
function alertConfirmDialog(opts) {
var dialog = $.dialog({
title: opts.title || '成功',
hasTitle: false,
source: TPL.alertConfirmDialog(opts),
width: 470,
// height: 342,
// containerCls: 'dialog',
onSubmit: function(close) {
close.click();
},
onReady: function(dialog) {
}
})
};
function approve(opts) {
var dialog = $.dialog({
title: opts.title || '通过审批',
source: TPL.approve(opts),
width: 540,
height: 330,
onSubmit: function(close) {
close.click();
},
onReady: function(dialog) {
}
})
}
function viewFile(opts) {
var dialog = $.dialog({
title: opts.title || '查看审批文件',
source: TPL.viewFile(opts),
width: 540,
height: 330,
onSubmit: function(close) {
close.click();
},
onReady: function(dialog) {
}
})
}
/** 员工管理弹窗 **/
// 添加、部门、修改部门名称
function addSubDep(obj) {
var $dialog = $.dialog({
hasTitle: true,
title: obj.title || '标题',
source: TPL.addSubDep(obj),
subTitle: obj.subTitle || '部门名称',
width: 540,
height: obj.height || 260,
placeholder: obj.placeholder || '请输入',
onReady: function() {
if(obj.type == 'add') {
//treeType = 'add';
//组织架构渲染
var opts = {
data: obj.data,
dom: $('#dep-tree'),
setting: setting,
leafIcon: './../../css/i/icon_section.png'
}
utils.renderTree(opts);
treeOperate($('.dep-info'));
}
}
});
var close = $dialog.data('close');
var required = obj.require || false;
$dialog.find('.surecls').bind('click', function(ev) {
//input内容
var input = $('.c-input').val(),dep;
if($('.bp-input')) {
dep = $('.bp-input').val()
}
if (required && !utils.verifyDep(input)) {
$('.c-input').focus().addClass('warn');
//return;
} else {
$('.c-input').removeClass('warn');
if(required && dep === '') {
$('.bp-input').focus();
return;
}
obj && obj.surecall(input,dep);
close();
}
});
$dialog.find('.cancel').bind('click', function(ev) {
obj && obj.cancelcall();
close();
});
}
//删除确认弹窗
function delInfoDialog(obj) {
var $dialog = $.dialog({
hasTitle: false,
source: TPL.delInfoDialog(obj),
width: obj.width || 540,
height: obj.height || 260
});
var close = $dialog.data('close');
$dialog.find('.surecls').bind('click', function(ev) {
obj && obj.surecall();
close();
});
$dialog.find('.cancel').bind('click', function(ev) {
obj && obj.cancelcall();
close();
});
}
//修改部门
function modifyDep(obj) {
var $dialog = $.dialog({
hasTitle: true,
title: obj.title || '标题',
source: TPL.modifyDep(obj),
width: 540,
height: obj.height || 260,
placeholder: obj.placeholder || '请输入',
onReady: function() {
//treeType = 'modify';
//组织架构渲染
depId = '';
depName = '';
judge = false;
var opts = {
data: obj.data,
dom: $('#m-tree'),
setting: setting
}
utils.renderTree(opts);
//if(treeType == 'modify') {
modifyDepTreeOp();
deleteSelectedDep();
//}
//监听搜索事件
searchDep();
}
});
var close = $dialog.data('close');
$dialog.find('.surecls').bind('click', function(ev) {
//获取已选中的部门信息
var arr = getSelected();
obj && obj.surecall(arr);
close();
});
$dialog.find('.cancel').bind('click', function(ev) {
obj && obj.cancelcall();
close();
});
}
//修改标签
function modifyLabel(obj) {
var $dialog = $.dialog({
hasTitle: true,
title: obj.title || '标题',
source: TPL.modifyDep(obj),
width: 540,
height: obj.height || 260,
placeholder: obj.placeholder || '请输入',
onReady: function() {
labelId = '';
labelName = '';
judge = false;
//初始化标签树
initLabel(obj.data);
deleteSelectedDep();
//监听搜索事件
searchDep();
}
});
var close = $dialog.data('close');
$dialog.find('.surecls').bind('click', function(ev) {
//获取已选中的部门信息
var arr = getSelected();
obj && obj.surecall(arr);
close();
});
$dialog.find('.cancel').bind('click', function(ev) {
obj && obj.cancelcall();
close();
});
}
module.exports = {
comfirm: comfirm,
addTypeDialog: addTypeDialog,
addType1Dialog: addType1Dialog,
createSuiteDialog: createSuiteDialog,
downDialog: downDialog,
alertSuccessDialog: alertSuccessDialog,
alertConfirmDialog: alertConfirmDialog,
approve: approve,
viewFile: viewFile,
addSubDep: addSubDep,
delInfoDialog: delInfoDialog,
modifyDep: modifyDep,
comfirmWithIcon:comfirmWithIcon,
setPwd: setPwd,
inPwd: inPwd,
deposit: deposit,
addText: addText,
modifyLabel: modifyLabel
}
})