mbui.define(['tool','layer','picker','userPicker'],function(exports){
let layer = mbui.layer,tool=mbui.tool,picker = mbui.picker,adminpicker = mbui.userPicker;
const opts={
"box":'editBox',//编辑容器id
"id":0,//编辑容器id
"url": '',
"radio":{},
"checbox":{},
"menu":{},
"callback":function(e){
layer.msg(e.msg);
if(e.code==0){
setTimeout(function(){
location.reload();
},1000)
}
}
};
const obj = {
//短文本
text: function (that) {
let me = this;
let field = that.data('field');
let text = that.data('text');
text = typeof(text) == "undefined" ? that.text():text;
layer.open({
type: 1,
title: '请输入内容',
area: ['360px', '158px'],
content: '
',
btnAlign: 'c',
btn: ['保存','取消'],
yes: function () {
let val = $("#oaEditText").val();
if (val != '') {
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = val;
tool.post(me.sets.url,postData,me.sets.callback);
} else {
layer.msg('请输入内容');
}
}
})
},
//长文本
textarea: function (that) {
let me = this;
let field = that.data('field');
let target = that.data('target');
let textarea='';
if (typeof(target) == "undefined") {
textarea = that.text();
}
else{
textarea = $('#'+target).text();
}
layer.open({
type: 1,
title: '请输入内容',
area: ['600px', '320px'],
content: '',
btnAlign: 'c',
btn: ['保存','取消'],
yes: function () {
let val = $("#oaEditTextarea").val();
if (val != '') {
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = val;
tool.post(me.sets.url,postData,me.sets.callback);
} else {
layer.msg('请输入内容');
}
}
})
},
//数字
num: function (that) {
let me = this;
let field = that.data('field');
let text = that.data('text');
text = typeof(text) == "undefined" ? that.text():text;
let min = that.data('min');
min = typeof(min) == "undefined" ? 0:min;
let max = that.data('max');
max = typeof(max) == "undefined" ? 100:max;
layer.open({
type: 1,
title: '请输入数字',
area: ['200px', '158px'],
content: '',
btnAlign: 'c',
btn: ['保存','取消'],
yes: function () {
let val = $("#oaEditNum").val();
if (val != '') {
if(min !='' && valmax){
layer.msg('输入数字不能大于'+max);
return false;
}
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = val;
tool.post(me.sets.url,postData,me.sets.callback);
} else {
layer.msg('请输入内容');
}
}
})
},
oadate: function (that) {
let me = this;
let type = that.data('type');
let min = that.data('min');
let max = that.data('max');
if (typeof(type) == "undefined" || type === '') {
type = 'date';
}
if (typeof(min) == "undefined" || min === '' || min === 1) {
min = '1970-01-01 00:00:00';
}
if (typeof(max) == "undefined" || max === '' || max === 100) {
max = '2099-12-31 23:59:59';
}
let field = that.data('field');
let text = that.data('text');
text = typeof(text) == "undefined" ? that.text():text;
picker.init({
elem: that, // 绑定元素
options: type, // 设置为日期选择器(日期选择器可设置:year、month、date、time、timesecond、datetime、datetimesecond)
onSuccess: function(index, elem){ // 渲染成功回调
picker.show(index);
},
onClear: function(index){ // 停止滚动触发:index是当前对象的标识, i 是当前滑动的对象,result是前面的值集
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = 0;
tool.post(me.sets.url,postData,me.sets.callback);
picker.remove(index);
},
onConfirm: function(index, val, result){ // 点击确认回调
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = val;
tool.post(me.sets.url,postData,me.sets.callback);
picker.remove(index);
},
onCancel: function(index){ // 点击取消回调
picker.remove(index);
},
onShade: function(index){ // 点击遮罩回调
picker.remove(index);
},
minDate:min,
maxDate:max
})
},
adminpicker: function (that){
let me = this;
let field = that.data('field');
let ids = that.data('ids');
let names = that.data('names');
let min = that.data('min');
min = typeof(min) == "undefined" ? 1:min;
adminpicker({
type:min,
callback:function(ids,names,dids,departments){
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = ids.join(',');
tool.post(me.sets.url,postData,me.sets.callback);
}
});
},
picker:function(that){
let me = this;
let field = that.data('field');
let api = that.data('api');
if(typeof(api) == "undefined"){
layer.msg('相关API参数未完善');
return false;
}
let min = that.data('min');
min = typeof(min) == "undefined" ? 1:min;
let loading;
$.ajax({
url: api,
type: 'get',
beforeSend:function(){
loading = layer.loading('加载中...');
},
success: function (e) {
if (e.code == 0) {
data = e.data;
if(min==1){
me.radio(that,data);
}
else{
me.checkbox(that,data);
}
}
},
complete:function(){
layer.close(loading);
}
})
},
radio:function(that,data){
let me = this;
let field = that.data('field');
let text = that.data('text');
text = typeof(text) == "undefined" ? that.text():text;
let arrayidx = that.data('array');
if(typeof(arrayidx) != "undefined" && arrayidx!=''){
data = me.sets.radio[arrayidx];
}
if (data.length == 0) {
layer.msg('无可选择的内容');
return false;
}
let len = data.length;
let editHtml = '
'
while (len--) {
if (data[len].id == text) {
editHtml+='';
}
else{
editHtml+='';
}
}
editHtml+='
';
layer.open({
type:5,
content:editHtml,
btn:['确定','取消'],
yes:function(index){
let val = $('input[name="layer_radio"]:checked').val();
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = val;
tool.post(me.sets.url,postData,me.sets.callback);
}
});
},
checkbox:function(that){
let me = this;
let field = that.data('field');
let text = that.data('text');
text = typeof(text) == "undefined" ? that.text():text;
let selected_array = text+''.split(',');
let arrayidx = that.data('array');
let data = me.sets.checkbox[arrayidx];
if (data.length == 0) {
layer.msg('无可选择的内容');
return false;
}
let len = data.length;
let editHtml = '
'
while (len--) {
if (selected_array.includes(data[len].id)) {
editHtml+='';
}
else{
editHtml+='';
}
}
editHtml+='
';
layer.open({
type:5,
content:editHtml,
btn:['确定','取消'],
yes:function(index){
let checkedValues = $('input[name="layer_checkbox"]:checked').map(function(){
return $(this).val();
}).get();
let postData = {'id':me.sets.id,'scene':'oaedit'};
postData[field] = checkedValues.join(',');
tool.post(me.sets.url,postData,me.sets.callback);
}
});
},
menu: function (that) {
let me = this;
let arrayidx = that.data('array');
let data = me.sets.menu[arrayidx];
if (data.length == 0) {
layer.msg('无可选择的内容');
return false;
}
let len = data.length;
let editHtml = ''
while (len--) {
let item = $('#edit_'+data[len].field);
let types = item.data('types');
let text = item.data('text');
text = typeof(text) == "undefined" ? item.text():text;
let arrays = item.data('array');
arrays = typeof(arrays) == "undefined" ? '':arrays;
let api = item.data('api');
api = typeof(api) == "undefined" ? '':api;
let min = item.data('min');
min = typeof(min) == "undefined" ? 1:min;
let max = item.data('max');
max = typeof(max) == "undefined" ? 100:max;
editHtml+=''+data[len].title+'';
}
layer.open({
type:4,
content: editHtml,
btn:['取消'],
success:function(elem,index){
$(elem).on('click','.actionsheet-btn',function(){
let thatmenu = $(this);
let types = thatmenu.data('types');
layer.close(index);
switch (types) {
case "num":
me.num(thatmenu);
break;
case "oadate":
me.oadate(thatmenu);
break;
case "textarea":
me.textarea(thatmenu);
break;
case "adminpicker":
me.adminpicker(thatmenu);
break;
case "picker":
me.picker(thatmenu);
break;
case "radio":
me.radio(thatmenu,[]);
break;
case "checkbox":
me.checkbox(thatmenu,[]);
break;
default:
me.text(thatmenu);
}
})
}
});
},
init: function (options) {
this.sets = $.extend({}, opts, options);
let me = this;
let editBox = $('#'+me.sets.box);
editBox.on('click','.click-edit',function(){
let that = $(this);
let types = that.data('types');
let role = that.data('role');
role = typeof(role) == "undefined" ? 1:role;
if(role==0){
layer.msg('你无权限操作');
return false;
}
switch (types) {
case "num":
me.num(that);
break;
case "oadate":
me.oadate(that);
break;
case "textarea":
me.textarea(that);
break;
case "adminpicker":
me.adminpicker(that);
break;
case "picker":
me.picker(that);
break;
case "radio":
me.radio(that,[]);
break;
case "checkbox":
me.checkbox(that,[]);
break;
case "menu":
me.menu(that);
break;
default:
me.text(that);
}
})
}
}
//输出接口
exports('oaEdit', obj);
});