zoukankan      html  css  js  c++  java
  • layui 三级联动-图片上传

    html 表单:

     <form class="layui-form" id="addForm">
            <div class="baseInfo block">
                <p>商品基本信息</p>
                <div class="layui-form-item">
                    <label class="layui-form-label"><span>*</span>行业分类</label>
                    <div class="layui-input-block">
                        <select name="diyi" lay-filter="diyi" lay-verify="required">
                            <option value="0">-请选择-</option>
                            {volist name="goodstype" id="ty"}
                            <option value="{$ty['catId']}">{$ty['catName']}</option>
                            {/volist}
                        </select>
                        &nbsp;
                        <select name="erji" id="erji" lay-filter="erji"></select>
                        &nbsp;
                        <select name="sanjiji" id="sanjiji"></select>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">店铺分类</label>
              // 三级联动 <div class="layui-input-block"> <select id="shopCatId1" class='j-ipt J-measureUnit' lay-filter="shopCatId1" name="shopCatId1"> <option value="">-请选择-</option> {volist name=":WSTShopCats(0)" id="vo"} <option value="{$vo['catId']}" {if $object[ 'shopCatId1']==$vo['catId']}selected{/if}>{$vo['catName']}</option> {/volist} </select> &nbsp;&nbsp; <select id='shopCatId2' class='j-ipt J-measureUnit' name="shopCatId2"> <option value=''>-请选择-</option> </select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label"><span>*</span>商品名称</label> <div class="layui-input-block"> <input type="text" placeholder="请输入商品名称" autocomplete="off" class="layui-input" name="goodsName" lay-verify="required"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">服务区域</label> <div class="layui-input-block"> <input type="text" placeholder="请输入服务区域" autocomplete="off" class="layui-input" name="service_area"> <span style="font-size: 10px;color: #666">请仅填写行政区域,如:某某区。多个用空格分隔。</span> </div> </div> <div class="layui-form-item"> <label class="layui-form-label"><span>*</span>商品封面</label> <div class="layui-input-block"> <div class="layui-upload"> <input id="upload" name="goodsImg" type="hidden" lay-verify="required"> <button type="button" class="layui-btn layui-bg-red" id="test1">上传图片<span style="font-size: 12px; color: rgba(255,255,255,0.9);">(图片大小2M以内)</span></button> <div class="layui-upload-list"> <img class="layui-upload-img" id="demo1" style=" 100px; height: 100px;"> </div> <div style=" 95px;"> <div class="layui-progress layui-progress-big" lay-showpercent="yes" lay-filter="demo"> <div class="layui-progress-bar" lay-percent=""></div> </div> </div> </div> <a name="list-progress"> </a> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>计量单位</label> <div class="layui-input-block"> <input type="text" placeholder="请输入计量单位" autocomplete="off" class="layui-input" name="goodsUnit" value="" lay-verify="required"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>报价方式</label> <div class="layui-input-block"> <input type="radio" name="goodsPrice" value="1" title="电话议价" lay-filter="goodsPrice" checked> <input type="radio" name="goodsPrice" value="2" title="直接报价" lay-filter="goodsPrice" > </div> </div> <div class="layui-form-item layui-form-text unitPrice"> <label class="layui-form-label"><span>*</span>商品单价</label> <div class="layui-input-block"> <input type="text" placeholder="请输入商品单价" autocomplete="off" class="layui-input" name="goodsUnitPrice" value="0" lay-verify="required"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>商品描述</label> <div class="layui-input-block"> <textarea placeholder="请输入内容" lay-verify="content" class="layui-textarea" name="goodsDesc" id="goodsDesc" lay-verify="required"></textarea> </div> </div> <div class="layui-form-item radio"> <label class="layui-form-label"><span>*</span>类型选择</label> <div class="layui-input-block"> <input type="radio" name="goodsType" value="1" title="服务" lay-filter="goodsType" checked> <input type="radio" name="goodsType" value="2" title="商品" lay-filter="goodsType"> </div> </div> </div> <div class="dealInfo block"> <p>商品交易信息</p> <div class="layui-form-item layui-form-text"> <label class="layui-form-label">促销信息</label> <div class="layui-input-block"> <input type="text" placeholder="请输入商品促销信息" autocomplete="off" class="layui-input" name="goodsTips"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>商品编号</label> <div class="layui-input-block"> <input type="text" placeholder="请输入商品编号" autocomplete="off" class="layui-input" value="{$goodsSn}" readonly="readonly"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>商品货号</label> <div class="layui-input-block"> <input type="text" placeholder="请输入商品货号" autocomplete="off" class="layui-input" value="{$goodsSn}" readonly="readonly"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>商品状态</label> <div class="layui-input-block"> <input type="radio" name="goodsStatus" value="1" title="上架" checked> <input type="radio" name="goodsStatus" value="0" title="下架"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>供应总量</label> <div class="layui-input-block"> <input type="text" placeholder="请输入供应总量" autocomplete="off" class="layui-input" name="goodsAll" value="0" lay-verify="required"> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label"><span>*</span>预警库存</label> <div class="layui-input-block"> <input type="text" placeholder="请输入预警库存" autocomplete="off" class="layui-input" name="goodsSave" value="0" lay-verify="required"> </div> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <input type="hidden" value="{$goodsSn}" name="goodsSn"> <input type="hidden" value="{$goodsSn}" name="productNo"> <input type="hidden" value="123456" name="debug"> <button class="layui-btn layui-bg-red" lay-submit lay-filter="addForm" type="submit">立即提交</button> </div> </div> </form>

    js核心逻辑部分

    <script>
        //常规使用 - 普通图片上传
        layui.use(['upload', 'element', 'layer'], function() {
            var $ = layui.jquery
                , upload = layui.upload
                , element = layui.element
                , layer = layui.layer;
    
            var uploadInst = upload.render({
                elem: '#test1'
                ,url: "{:Url('users/uploadPic')}" //改成您自己的上传接口
                ,before: function(obj){
                    //预读本地文件示例,不支持ie8
                    this.data={dir: 'goods', isWatermark: 1, isThumb: 1}//携带参数
                    obj.preview(function(index, file, result){
                    });
    
                    element.progress('demo', '0%'); //进度条复位
                    layer.msg('上传中', {icon: 16, time: 0});
                }
                ,done: function(res){
                    //如果上传失败
                    console.log('res',res);
                    if(res.status  !== 1){
                        $('#demo1').attr('src', ""); //图片链接(base64)
                        return layer.msg(res.msg);
                    }else{
                        console.log('上传成功');
                        let _imgUrl =  res.savePath + res.name; // 图片路径
                        $("#demo1").attr("src","__ROOT__/" + _imgUrl);
                        $("#upload").val("__ROOT__" + _imgUrl);
                    }
                }
                ,error: function(){
                    //演示失败状态,并实现重传
                    var demoText = $('#demoText');
                    demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                    demoText.find('.demo-reload').on('click', function(){
                        uploadInst.upload();
                    });
                }
                //进度条
                ,progress: function(n, elem, e){
                    element.progress('demo', n + '%'); //可配合 layui 进度条元素使用
                    if(n == 100){
                        layer.msg('上传完毕', {icon: 1});
                    }
                }
            });
        });
    
    </script>
    
    <script type="text/javascript">
        //表单三级联动选择、提交、富文本
        layui.use('form', function() {
            let form = layui.form; //高版本建议把括号去掉,有的低版本,需要加()
            /*三级行业分类联动*/
            form.on('select(diyi)', function(data){
                let parentId = Number(data.value); // 一级选中的值
                $.ajax({
                    url: "{:url('users/getZType')}",
                    method: "POST",
                    data: {
                        id: parentId
                    },
                    success: function (res) {
                        if (res.status ===1) {
                            $("#erji").empty();
                            $("#sanjiji").empty();
                            $("#erji").append(new Option("-请选择-", ""));
                            $.each(res.data, function(index, item) {
                                $('#erji').append(new Option(item.catName, item.catId));
                            });
                        } else {
                            $("#erji").append(new Option("暂无数据", ""));
                        }
                        form.render("select");
                    }
                });
            });
    
            form.on('select(erji)', function(data){
                let parentId = Number(data.value); // 一级选中的值
                $.ajax({
                    url: "{:url('users/getZType')}",
                    method: "POST",
                    data: {
                        id: parentId
                    },
                    success: function (res) {
                        if (res.status ===1) {
                            $("#sanjiji").empty();
                            $("#sanjiji").append(new Option("-请选择-", ""));
                            $.each(res.data, function(index, item) {
                                $('#sanjiji').append(new Option(item.catName, item.catId));
                            });
                        } else {
                            $("#sanjiji").append(new Option("暂无数据", ""));
                        }
                        form.render("select");
    
                    }
                });
            });
    
            /*二级商品分类联动*/
            form.on('select(shopCatId1)', function(data){
                let parentId = Number(data.value); // 一级选中的值
                $.ajax({
                    url: "{:url('users/cats_list')}",
                    method: "POST",
                    data: {
                        parentId: parentId
                    },
                    success: function (res) {
                        if (res.status ===1) {
                            $("#shopCatId2").empty();
                            $("#shopCatId2").append(new Option("-请选择-", ""));
                            $.each(res.list, function(index, item) {
                                $('#shopCatId2').append(new Option(item.catName, item.catId));
                            });
                        } else {
                            $("#shopCatId2").append(new Option("暂无数据", ""));
                        }
                        form.render("select");
    
                    }
                });
            });
            /*类型选择*/
            $(".dealInfo").slideUp();
            form.on('radio(goodsType)', function(data){
                $(".dealInfo").slideToggle();
            });
    
            /*报价方式选择*/
            $(".layui-form-item.unitPrice").slideUp();
            form.on('radio(goodsPrice)', function(data){
                $(".layui-form-item.unitPrice").slideToggle();
            });
    
    
            form.on("submit(addForm)", function (data) {
                console.log('提交',data);
                $.ajax({
                    url:"{:url('users/launchPro')}",
                    data: data.field,
                    method:"POST",
                    success:function (res) {
                        if(res.status === 1){
                            layer.msg(res.msg,{
                                time:2000
                            },function () {
                                window.location.href= "{:url('users/goods_list')}";
                            });
                        }else{
                            layer.msg(res.msg)
                        }
                    },
                    beforeSend:function () {
                        layer.msg("数据提交中...",{
                            icon:16
                        });
                    }
                });
                return false;
            })
        });
        /*富文本*/
        layui.use(['layedit','form'], function(){
            var layedit = layui.layedit;
            let form = layui.form;
            var editor = layedit.build('goodsDesc',{
                tool: [
                    'strong' //加粗
                    ,'italic' //斜体
                    ,'underline' //下划线
                    ,'del' //删除线
                    ,'|' //分割线
                    ,'left' //左对齐
                    ,'center' //居中对齐
                    ,'right' //右对齐
                    ,'link' //超链接
                    ,'unlink' //清除链接
                    // ,'image' //插入图片
                    ,'help' //帮助
                ]
            }); //建立编辑器
    
            /*富文本内容同步*/
            form.verify({
                content: function () {
                    return layedit.sync(editor);
                }
            });
        });
        $(function () {
            $(".webuploader-pick").text("");
        })
        /*添加参数信息*/
        function addParam() {
            $("#paramList").append("<div style='margin-bottom: 15px;'><input name='param' type='text'>:<input name='param01' type='text'></div>");
        }
        $("select").on("change",function () {
            $(this).find("option:selected").attr("selected", "selected");
            console.log('_select',$("select option:selected").val())
        })
    </script>
    没有人能一路单纯到底,但是要记住,别忘了最初的自己!
  • 相关阅读:
    Android 5.X新特性之RecyclerView基本解析及无限复用
    Android 网络框架之Retrofit2使用详解及从源码中解析原理
    Android 源码解析之AsyncTask
    Business Logic
    WHO AM I
    黑洞
    俄罗斯方块
    还记得八皇后的解法吗
    汝之蜜糖,吾之砒霜
    项目为什么会失败
  • 原文地址:https://www.cnblogs.com/LindaBlog/p/15247912.html
Copyright © 2011-2022 走看看