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