fastadmin表单中二维数组组件+图片上传

news2024/9/25 9:39:39

记录:fastadmin表单中二维数组组件+图片上传

add.html代码

    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Quanyi')}:</label>
        <div class="col-xs-12 col-sm-10">
            <style>
                .plupload-preview li, .faupload-preview li{
                    margin-top:0px;
                }
                .plupload-preview a.btn-trash{
                    width:20px;
                    margin-top: -35px;
                    margin-left: 40px;
                }
                .plupload-preview a:first-child, .faupload-preview a:first-child{
                    width:40px;
                    height:40px;
                    padding: 0;
                }
                .plupload-preview a img, .faupload-preview a img{
                    width:40px;
                    height:40px;
                }
            </style>
            <table class="table fieldlist" data-name="row[quanyi]" data-template="row[quanyi]tpl">
                <tr>
                    <td>标题</td>
                    <td>介绍</td>
                    <td>图标</td>
                    <td>选择图标</td>
                    <td width="90">{:__('Operate')}</td>
                </tr>
                <tr>
                    <td colspan="5">
                        <a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a>
                        <textarea name="row[quanyi]" class="form-control hide" cols="30" rows="5">
                            [{"title":"尊贵标识","intro":"","image":"/uploads/20240826/a04ebfee74aa75dc8503638860c7a018.jpg"},{"title":"专属优惠券","intro":"","image":""},{"title":"消费返多倍积分","intro":"","image":""},{"title":"会员商品","intro":"","image":""}]
                        </textarea>
                    </td>
                </tr>
            </table>
            <script type="text/html" id="row[quanyi]tpl">
                <tr>
                    <td><input type="text" name="<%=name%>[<%=index%>][title]" class="form-control" value="<%=row.title%>"/></td>
                    <td><input type="text" name="<%=name%>[<%=index%>][intro]" class="form-control" value="<%=row.intro%>"/></td>
                    <td>
                        <input id="c-image<%=index%>" class="form-control" name="<%=name%>[<%=index%>][image]" style="display: none!important;" type="text" value="<%=row.image%>">
                        <div class="row list-inline plupload-preview spe_img_one" id="p-image<%=index%>"></div>
                    </td>
                    <td>
                        <div class="input-group-addon no-border no-padding">
                            <span><button type="button" id="plupload-image<%=index%>" class="btn btn-danger plupload" data-input-id="c-image<%=index%>" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image<%=index%>"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
                            <span><button type="button" id="fachoose-image<%=index%>" class="btn btn-primary fachoose faselect" data-input-id="c-image<%=index%>" data-mimetype="image/*" data-preview-id="p-image<%=index%>" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
                        </div>
                    </td>
                    <td width="90">
                        <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>
                    </td>
                </tr>
            </script>

        </div>
    </div>

js代码

    add: function () {
    	// 此处必加,用于表单中二维数组组件中的图片上传和选择按钮生效
        $(document).on("fa.event.appendfieldlist", '[data-name="row[quanyi]"] .btn-append', function(e, obj){
            Form.events.faupload(obj);  //绑定上传事件
            Form.events.faselect(obj);  //绑定选择事件
        });
        Controller.api.bindevent();
    },

edit.html代码

    <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__('Quanyi')}:</label>
        <div class="col-xs-12 col-sm-10">
            <style>
                .plupload-preview li, .faupload-preview li{
                    margin-top:0px;
                }
                .plupload-preview a.btn-trash{
                    width:20px;
                    margin-top: -35px;
                    margin-left: 40px;
                }
                .plupload-preview a:first-child, .faupload-preview a:first-child{
                    width:40px;
                    height:40px;
                    padding: 0;
                }
                .plupload-preview a img, .faupload-preview a img{
                    width:40px;
                    height:40px;
                }
            </style>
            <table class="table fieldlist" data-name="row[quanyi]" data-template="row[quanyi]tpl">
                <tr>
                    <td>标题</td>
                    <td>介绍</td>
                    <td>图标</td>
                    <td>选择图标</td>
                    <td width="90">{:__('Operate')}</td>
                </tr>
                <tr>
                    <td colspan="5">
                        <a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a>
                        <textarea name="row[quanyi]" class="form-control hide" cols="30" rows="5">{$row.quanyi|htmlentities}</textarea>
                    </td>
                </tr>
            </table>
            <script type="text/html" id="row[quanyi]tpl">
                <tr>
                    <td><input type="text" name="<%=name%>[<%=index%>][title]" class="form-control" value="<%=row.title%>"/></td>
                    <td><input type="text" name="<%=name%>[<%=index%>][intro]" class="form-control" value="<%=row.intro%>"/></td>
                    <td>
                        <input id="c-image<%=index%>" class="form-control" name="<%=name%>[<%=index%>][image]" style="display: none!important;" type="text" value="<%=row.image%>">
                        <div class="row list-inline plupload-preview spe_img_one" id="p-image<%=index%>"></div>
                    </td>
                    <td>
                        <div class="input-group-addon no-border no-padding">
                            <span><button type="button" id="plupload-image<%=index%>" class="btn btn-danger plupload" data-input-id="c-image<%=index%>" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image<%=index%>"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
                            <span><button type="button" id="fachoose-image<%=index%>" class="btn btn-primary fachoose faselect" data-input-id="c-image<%=index%>" data-mimetype="image/*" data-preview-id="p-image<%=index%>" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
                        </div>
                    </td>
                    <td width="90">
                        <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>
                    </td>
                </tr>
            </script>

        </div>
    </div>

js代码

    edit: function () {
        // 此处必加,用于表单中二维数组组件中的图片上传和选择按钮生效
        $(document).on("fa.event.appendfieldlist", '[data-name="row[quanyi]"] .btn-append', function(e, obj){
            Form.events.faupload(obj);  //绑定上传事件
            Form.events.faselect(obj);  //绑定选择事件
        });
        Controller.api.bindevent();
    },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2077831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多个FeignClient使用相同服务名报错问题:使用contextId区分不同FeignClient

一、概述 在项目开发中&#xff0c;由于多个 FeignClient 使用了相同的 name &#xff0c;导致SpringBoot启动时出现 BeanDefinitionOverrideException 异常。 解决方案是在每个 FeignClient 上添加唯一的 contextId&#xff0c;如 userFeignClient 和 helloWorldFeignClient…

低功耗高效率同步降压变换器SiLM6880/SiLM6881 为工业应用领域电源提供强力支撑

为了满足现代电子设备对性能和能耗的更高要求&#xff0c;并不断推动电源技术的优化与创新&#xff0c;深力科推荐一款——低功耗、高效率的同步降压变换器SiLM6880/SiLM6881。 SiLM6880/SiLM6881具有宽泛的输入电压范围&#xff08;6V~80V&#xff09;&#xff0c;能适应各种电…

LLM分布式预训练浅析

随着深度学习的不断进步&#xff0c;语言模型的规模越来越大&#xff0c;参数量级已经达到了数千亿甚至数万亿&#xff0c;参数规模的指数增长带来了两个巨大的挑战 1&#xff09;模型参数过大&#xff0c;如GLM 130B模型参数需要520GB&#xff08;130B*4bytes&#xff09;的显…

【Latex】Latex 简介和安装

Latex LaTeX 是一种基于排版的文档准备系统&#xff0c;广泛用于创建高质量的科学和数学文档。它的核心是 TeX 语言&#xff0c;由美国计算机科学家 Donald Knuth 在 1978 年开发。LaTeX 简化了文档的格式化过程&#xff0c;尤其是在处理复杂的公式、引用、表格、图表等方面&a…

Java IO精髓:高效块读写入技术深入解析

文件的复制 首先我们先用昨天学习的知识来完成文件的复制,使用read和write方法来完成。 public static void main(String[] args) throws IOException {FileInputStream fis new FileInputStream("./image.png");FileOutputStream fos new FileOutputStream("…

OpenCV开发笔记(七十九):基于Stitcher类实现全景图片拼接

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/141561865 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

加速边缘智能技术落地!移远通信推出全功能ARM主板QSM560DR、QSM668SR系列

8月22日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;正式推出其两款全功能ARM主板——QSM560DR与QSM668SR系列。 作为智能设备开发与硬件设计的核心平台&#xff0c;这两款ARM主板以卓越的集成度和性能、广泛的兼容性以及丰富的功能接口&#xff0…

零基础学习人工智能—Python—Pytorch学习(八)

前言 本文介绍卷积神经网络的上半部分。 其实,学习还是需要老师的,因为我自己写文章的时候,就会想当然,比如下面的滑动窗口,我就会想当然的认为所有人都能理解,而实际上,我们在学习的过程中之所以卡顿的点多,就是因为学习资源中想当然的地方太多了。 概念 卷积神经网络…

WPF- vs中的WPF应用项目模板 如何自己实现

读书笔记 1. 单个 c#文件的 空白window应用程序 (只展示了一个button按钮) 2.C#文件 和xml文件 的空白window程序 .xml文件作为程序的资源 (只一个button按钮) 3. xmal和c#共同编译 形如使用VS 创建WPF应用项目模板 1.新建一个wpf空白项目 ,添加一个主c#文件 和xaml文件(属…

list底层详解

目录 介绍 list的实现 1.自定义节点 2.迭代器封装 构造函数 前置和后置 前置--和后置-- *操作符和->操作符 和!操作符 iterator和const_iterator 3. list类 构造函数和析构函数 赋值操作 头尾迭代器 插入和删除 头插头删尾插尾删 list接口函数总代码 介绍…

【开端】Java中最常用的一个类型String的使用

一、绪论 Java中最常用的一个类型是String&#xff0c;其实从JDK1.0 到JDK20 Java 开发工具包其实也经过很多演变&#xff0c;很多功能做了一些优化。这一节就把String类里的方法拎出来看看哪些是常用的&#xff0c;哪些经常用不到得到&#xff0c;哪些是已经有的&#xff0c;…

BaseCTF [第 2 周] lk

前言&#xff1a;做题笔记。 下载解压查壳。 64IDA打开。 查找字符串去。 跟进BaseCTF{ 找到 main 头部&#xff1a; 尾部&#xff1a; 程序&#xff1a; 选择题&#xff0c;咳&#xff0c;动漫迷可以做&#xff0c;也能得flag。(我不怎么看动漫。。) 告知我们&#xff0c;输…

【开发笔记】Notepad++配置

Notepad配置 Notepad保护色配置 settings --> Style Configurator 选择 Enable olobal foreground colourEnable global background colour 设置背景色 点击 Save & Close按钮&#xff0c;完成保存。 设置 Unix换行符

计算机网络 TCPUDP、IP、ARPRARP、NAT总结

文章目录 TCP 和 UDPUDPTCPTCP 三次握手半连接队列&#xff08;SYN队列&#xff09;全连接队列&#xff08;Accept队列&#xff09;TCP四次挥手为什么四次挥手为什么需要TIME_WAIT状态TIME_WAIT的危害为什么是2MSL 重传机制滑动窗口流量控制拥塞控制 IPIP地址分类A、B、C类地址…

javaee、ssm(maven)、springboot(maven)项目目录结构以及编译后文件目录存放路径

javaee项目目录结构&#xff1a; src下的文件或者是源码编译后都会放在WebRoot&#xff08;项目根目录&#xff09;文件夹\WebRoot\WEB-INF\classes目录中。 编译后的文件夹目录如下&#xff1a; 以上为普通的javaee项目目录结构&#xff0c;同maven工程目录结构是不一样的。…

Segment Anything:如何导出完整的ONNX模型?

在本文中&#xff0c;我将讨论 Segment Anything - 例如分割的神经网络&#xff0c;可用于从图像中分割任何对象而无需知道其类型。但是&#xff0c;这不是关于如何使用它的教程&#xff0c;因为它已经在官方存储库和其他类似文章中进行了描述。在这里&#xff0c;我将解释如何…

《计算机网络期末复习知识点大全》

目录 一、第一章 概述 1. TCP/IP分层网络体系结构、分层原因、作用 2. 时延、发送时延、传播时延 2.1 速率相关性能指标 2.1.1 速率 2.1.2 带宽 2.2 时间相关性能指标 2.2.1 发送时延 2.2.2 传播时延 2.3 考点例题 二、第二章 物理层 1. 编码与调制 2. 常用编码方…

人眼检测(单张图像-原始版)

目录 实验原理 实验代码 运行结果 改进代码 实验原理 要在C中使用OpenCV来检测图像中的人眼&#xff0c;你需要完成以下步骤&#xff1a; 安装OpenCV库并设置好开发环境。加载预训练的级联分类器&#xff08;通常是用于人脸和眼睛检测的XML文件&#xff09;。读取图像或视…

SQL-函数ing

1、字符串函数 # 字符函数 select concat(hello , mysql!); select lower(HELLO); select upper(hello); select lpad(01,5,-);# 左填充 select rpad(01,5,-);# 右填充 select trim( hello mysql ! );# 去除前后空格 select substring(hello mysql!,1,7);# 截取一部分字符前7…

【Java设计模式】非循环访问者模式:简化对象交互

文章目录 【Java设计模式】非循环访问者模式&#xff1a;简化对象交互一、概述二、非循环访问者设计模式的意图三、非循环访问者模式的详细解释及实际示例四、Java中非循环访问者模式的编程示例五、非循环访问者模式类图六、Java中何时使用非循环访问者模式八、非循环访问者模式…