403 lines
12 KiB
JavaScript
403 lines
12 KiB
JavaScript
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: '<div><input class="mbui-input" id="oaEditText" value="' + text + '"/></div>',
|
||
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: '<div style="padding:5px;"><textarea class="mbui-textarea" id="oaEditTextarea" style="width: 100%; height: 200px;">' + textarea + '</textarea></div>',
|
||
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: '<div style="padding:5px;"><input class="mbui-input" oninput="this.value = this.value.replace(/[^0-9]/g,\'\')" id="oaEditNum" value="' + text + '"/></div>',
|
||
btnAlign: 'c',
|
||
btn: ['保存','取消'],
|
||
yes: function () {
|
||
let val = $("#oaEditNum").val();
|
||
if (val != '') {
|
||
if(min !='' && val<min){
|
||
layer.msg('输入数字不能小于'+min);
|
||
return false;
|
||
}
|
||
if(max !='' && val>max){
|
||
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 = '<div class="mbui-layer-radio">'
|
||
while (len--) {
|
||
if (data[len].id == text) {
|
||
editHtml+='<div class="mbui-radio-checkbox"><label for="list_radio_'+data[len].id+'">'+data[len].title+'<input class="mbui-radio" type="radio" name="layer_radio" checked value="'+data[len].id+'" id="list_radio_'+data[len].id+'" /></label></div>';
|
||
}
|
||
else{
|
||
editHtml+='<div class="mbui-radio-checkbox"><label for="list_radio_'+data[len].id+'">'+data[len].title+'<input class="mbui-radio" type="radio" name="layer_radio" value="'+data[len].id+'" id="list_radio_'+data[len].id+'" /></label></div>';
|
||
}
|
||
}
|
||
editHtml+='</div>';
|
||
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 = '<div class="mbui-layer-checkbox">'
|
||
while (len--) {
|
||
if (selected_array.includes(data[len].id)) {
|
||
editHtml+='<div class="mbui-radio-checkbox"><label for="list_checkbox_'+data[len].id+'">'+data[len].title+'<input class="mbui-checkbox" type="checkbox" name="layer_checkbox" checked value="'+data[len].id+'" id="list_radio_'+data[len].id+'" /></label></div>';
|
||
}
|
||
else{
|
||
editHtml+='<div class="mbui-radio-checkbox"><label for="list_checkbox_'+data[len].id+'">'+data[len].title+'<input class="mbui-checkbox" type="checkbox" name="layer_checkbox" value="'+data[len].id+'" id="list_checkbox_'+data[len].id+'" /></label></div>';
|
||
}
|
||
}
|
||
editHtml+='</div>';
|
||
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+='<a href="javascript:void(0);" class="actionsheet-btn" data-field="'+data[len].field+'" data-types="'+types+'" data-array="'+arrays+'" data-text="'+text+'" data-min="'+min+'" data-max="'+max+'" data-api="'+api+'">'+data[len].title+'</a>';
|
||
}
|
||
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);
|
||
});
|