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); });