first commit
This commit is contained in:
@@ -0,0 +1,403 @@
|
||||
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);
|
||||
});
|
||||
Reference in New Issue
Block a user