多应用+插件架构,代码干净,支持一键云编译,码云点赞13K star,4.8-4.12 预售价格198元 广告
如下图所示,后台可以设置各种字段给用户输入。而这些字段其实也可以很方便随意添加的。 ![](https://img.kancloud.cn/c1/d9/c1d970a364fe47c0731b1bc3092ac2a0_1508x589.png) 如下图所示,找到文件`\application\extra\form.php`,打开后,找到一个类似的字段复制一个出来 ![](https://img.kancloud.cn/d3/ab/d3ab7a254003cb3d2ccddc618206da74_1324x950.png) 上面仅仅是配置文件。 下面再打开目录 `\application\common\field` 如下图所示,找到类似的那个字段,复制一个出来修改即可。 ![](https://img.kancloud.cn/66/53/66538ed8016556a7713c5bb387f8618e_856x486.png) 至此,新字段就开发设置完毕,后台就可以使用了。 鉴于一个用户订做审核功能,给大家分享一下如何灵活的增加自定义字段 之前的审核员功能,当时是匆匆忙忙加功能,所以就勉强的凑合着用一维数组的字段,大家初次使用是很别扭的,不过管理员自己使用就问题不大。懂得什么意思就好了。 假如要给用户使用的话,用户就会摸不着头脑是什么意思了。这仅仅是一个例子,在使用当中,大家可能会需要各种各样的功能字段,现有的字段只能满足通用的需求,个性需求的话,大家还是要个性化处理一下,更人性货,用户才能更好的理解其中的意思,才好知道怎么使用。 ![](https://img.kancloud.cn/ba/e1/bae1033bcc623d53130167ffc01b706f_897x462.gif) ![](https://img.kancloud.cn/86/52/8652813732c9e25ab421d24ce9a3e694_1671x659.png) ![](https://img.kancloud.cn/18/9e/189e7e28e3e3d595100ea11c6f27c8df_1404x803.png) 代码如下,给大家参考一下 以下代码是拿一维数组简单修改的,冗余代码在所难免。 ~~~ <?php function_exists('urls') || die('ERR'); $jscode = ''; $getuser_url = iurl('index/wxapp.member/getbyids'); if(fun('field@load_js',$field['type'])){ $jscode = <<<EOT <script type="text/javascript"> jQuery(document).ready(function() { $('.list_array').each(function () { var base = $(this); var basehtml = base.find('div.input-group:first').prop("outerHTML"); //base.append(basehtml); $(document).on("keypress", "input", function(event) { return event.keyCode != 13; //回车不能提交表单,请点击提交按钮! }); //统计数据 var count_value = function(){ var vals = []; base.find('input.wri').each(function(){ if($(this).val()!='')vals.push($(this).val()); }); //vals.join(',') base.find('textarea').val( JSON.stringify(vals) ); } //输入框鼠标离开事件 var blur_act = function(){ base.find('input.wri').on('blur',function(){ count_value(); $.get('{$getuser_url}',{uids:$(this).val()},res=>{ let arr = []; if(res.code==0){ res.data.forEach(rs=>{ arr.push(rs.username+'('+rs.uid+')') }) } $(this).parent().find('.listuser').html(arr.join('、')); }) } ); base.find('input.wri').bind('keyup',function(e){ if (event.keyCode == "13") { layer.alert('请点击底部的提交按钮来提交表单!'); } }); } //下移 function down_act(){ base.find("span.down").click(function(){ var that = $(this).parent(); if(that.next().hasClass('input-group')){ that.next().after(that.clone()); that.remove(); init_act(); }else{ layer.alert('到尽头了'); } }); } //上移 function up_act(){ base.find("span.up").click(function(){ var that = $(this).parent(); if(that.prev().hasClass('input-group')){ that.prev().before(that.clone()); that.remove(); init_act(); }else{ layer.alert('到尽头了'); } }); } //添加按钮事件 var add_act = function(){ base.find('.add').unbind('click').on('click', function(){ base.find('div.input-group:last').after(basehtml); base.find('div.input-group:last').find("input").val(''); base.find('div.input-group:last').find(".listuser").html(''); init_act(); } ); } //移除按钮事件 var del_act = function(){ base.find('span.del').on('click', function(){ $(this).parent().remove(); count_value(); count_step(); } ); } var count_step = function(){ let j = 0; base.find('.step').each(function(){ j++; $(this).html(j+'审'); }); } var init_act = function(){ base.find('span').off('click'); base.find('input').off('blur'); add_act(); del_act(); blur_act(); down_act(); up_act(); count_value(); count_step(); } init_act(); }); }); </script> EOT; } $groups = ''; $array = json_decode($info[$name],true); if($array){ foreach($array AS $key=>$vo){ $j = $key+1; $listuser=[]; foreach(explode(',',$vo) AS $uid){ if($uid>0){ $user = get_user($uid); if($user)$listuser[] = $user['username'].'('.$uid.')'; } } $listuser = implode('、',$listuser); $groups .= "<div class='input-group'> <span class='input-group-addon step'>{$j}审</span> <input class='wri' type='text' value='{$vo}' placeholder='请输入用户UID' > <span class='input-group-addon del'><i class='fa fa-fw fa-close'></i></span> <span class='listuser'>{$listuser}</span> </div>"; } }else{ $groups="<div class='input-group'> <span class='input-group-addon step'>1审</span> <input class='wri' type='text' value='' placeholder='请输入用户UID' > <span class='input-group-addon del'><i class='fa fa-fw fa-close'></i></span> </div>"; } return <<<EOT <div class="list_array"> $groups <div style="margin:8px 20px;"> <button class="layui-btn layui-btn-sm layui-btn-normal add" style="color:#fff;" type="button">增加一级</button> </div> <textarea style="display:none;" id="{$name}" name="{$name}" >{$info[$name]}</textarea> </div> $jscode EOT; ; ~~~