fastadmin自定义键值组件Fieldlist

需求场景:

后台设置前端的固定话费充值金额。编辑时要求能够增删改,给到前端的数据,是要根据金额正序排列,用fastadmin的键值组件(Fieldlist),使用Art-Template模板语法自定义模板。

最终效果如下图所示:

在编辑页面,增加如下代码:

html 复制代码
<dl class="fieldlist" data-name="row[recharge_money]" data-template="moneytpl">
    <dd>
        <ins>固定充值金额</ins>
    </dd>
    <dd>
        <a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> 追加</a>
    </dd>
    <textarea name="row[recharge_money]" class="form-control hide" cols="30" rows="5">{$row.recharge_money}</textarea>
</dl>
html 复制代码
<!--定义模板,模板语法使用Art-Template模板语法-->
<script type="text/html" id="moneytpl">
    <dd class="form-inline">
        <input type="number" name="[<%=index%>][value]" class="form-control" value="<%=value%>" size="10">
        <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span> <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span>
    </dd>
</script>

在控制器中,将接收到的金额,根据金额大小进行正序排列。

php 复制代码
if (stripos($params['recharge_money'], 'value')) {
    // 对有修改的充值金额的情况,进行重新整理
    $params['recharge_money'] = json_decode($params['recharge_money'], true);
    $params['recharge_money'] = array_column($params['recharge_money'], 'value');
    sort($params['recharge_money']);
    $params['recharge_money'] = json_encode($params['recharge_money']);
}
相关推荐
CRMEB系统商城12 分钟前
CRMEB多商户系统(PHP)v3.3正式发布,同城配送上线[特殊字符]
java·开发语言·小程序·php
cq林志炫7 小时前
由于openssl升级导致重启php时提示libssl.so.1.0.0不存在
php
stark张宇8 小时前
攻克 CRMRB 部署难点:从 PHP 扩展、数据库配置到进程守护
nginx·centos·php
爬山算法8 小时前
Redis(60) Redis的复制延迟如何优化?
redis·bootstrap·php
rising start9 小时前
前端基础一、HTML5
前端·html·html5
mit6.82413 小时前
[Backstage] 插件架构 | 软件目录 | 实体的生命周期
架构·状态模式
JaguarJack13 小时前
PHP "真异步" TrueAsync SAPI 与 NGINX Unit 集成
后端·php
晓风残月淡16 小时前
JVM字节码与类的加载(二):类加载器
jvm·python·php
tryCbest1 天前
Html5实现弹出表单
html5
Wx-bishekaifayuan1 天前
基于微信小程序的社区图书共享平台设计与实现 计算机毕业设计源码44991
javascript·vue.js·windows·mysql·pycharm·tomcat·php