中扬CRM客户关系管理系统
#
LSH
2023-11-24 2c7a0b5c9cded118d3c3c46211adf40fe558d67b
src/main/webapp/static/js/priQuote/priQuote.js
@@ -88,17 +88,40 @@
        cellMinWidth: 150,
        cols: [[
            {type: 'checkbox', fixed: 'left'}
            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
            ,{field: 'templateName', align: 'center',title: '模板名', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'more',hide: false}
            ,{field: 'orderNum', align: 'center',title: '报价预算单号',hide: false}
            ,{field: 'inOrderNum', align: 'center',title: '报价编号',hide: false}
            ,{field: 'planId$', align: 'center',title: '规划单号',hide: false}
            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80,hide : true, sort:true}
            ,{
                field: 'templateName',
                align: 'center',
                title: '客户名称',
                style: 'color: #1890ff;cursor:pointer',
                event: 'moreCstmr',
                width: 350,
                hide: false, sort:true
            }
            ,{field: 'cstmrId$', align: 'center',title: '客户id',hide: true}
            ,{field: 'inOrderNum', align: 'center',title: '报价编号',hide: false, sort:true}
            // ,{field: 'orderNum', align: 'center',title: '报价预算单号',hide: false}
            ,{
                field: 'planId$',
                align: 'center',
                title: '规划单号',
                style: 'color: #1890ff;cursor:pointer',
                event: 'morePlan'}
            ,{field: 'itemId', align: 'center',title: '规划单ID', hide: true, sort:true}
            ,{field: 'planName$', align: 'center',title: '规划单名称',hide: false}
            ,{field: 'settle$', align: 'center',title: '进度', width: 150,hide: false}
            ,{
                field: 'settle$',
                align: 'center',
                title: '进度',
                style: 'color: #1890ff;cursor:pointer',
                event: 'more',
                width: 150,
                hide: false
            }
            ,{field: 'createTime$', align: 'center',title: '创建时间',hide: false}
            ,{field: 'updateTime$', align: 'center',title: '更新时间',hide: false}
            ,{field: 'memberId$', align: 'center',title: '业务员',hide: false}
            ,{field: 'userId$', align: 'center',title: '创建人员',hide: true}
            // ,{field: 'memberId$', align: 'center',title: '业务员',hide: false}
            ,{field: 'userId$', align: 'center',title: '业务员',hide: true}
            ,{field: 'updateUserId$', align: 'center',title: '更新人员',hide: false}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:280}
        ]],
@@ -124,6 +147,102 @@
            pageCurr=curr;pageCount=count;
            limit();
        }
    });
    $("#data-btn-file2").on("click", (e) => {
        $("#data-btn-upload").click()
    });
    var _uploadFile = null
    //响应上传
    $("#data-btn-upload").on("change",(evt) => {
        var files = evt.target.files;
        if(files==null || files.length==0){
            alert("No files wait for import");
            return;
        }
        var file = files[0]
        var tr = $(['<tr id="upload-">'
            ,'<td id="upload-filename-id-'+ file.lastModified + '">' + file.name +'</td>'
            ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>'
            ,'<td id="upload-filename-userName-'+ '">' +'</td>'
            ,'<td id="upload-file-id-' + file.lastModified + '"><div class="layui-progress layui-progress-big" lay-showPercent="true" lay-filter="progress-demo-'+ file.lastModified +'"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
            ,'<td>'
            ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
            ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
            ,'<button id="file-download" class="layui-btn layui-btn-xs demo-reload layui-hide">下载</button>'
            ,'</td>'
            ,'</tr>'].join(''));
        //删除
        tr.find('.demo-delete').on('click', function(){
            tr.remove();
            $("#data-btn-upload").val("")
            _uploadFile = null
        });
        $('#data-btn-file3').append(tr)
        element.progress('progress-demo-'+ file.lastModified, '0%'); //执行进度条。
        element.init();
        _uploadFile = file
    })
    //开始上传
    $("#testListAction").on("click", async (e) => {
        if (_uploadFile == null) {
            return false;
        }
        var index = layer.load(1, {
            shadeClose: false,
            title: '上传中..',
            shade: [0.5,'#000']
        });
        var file = _uploadFile
        putObject(file,(p) => {
            element.progress('progress-demo-'+ file.lastModified, (Math.round(p * 100)) + "%"); //执行进度条。
        }).then((result) => {
            var filename = result.name
            layer.msg('上传成功', {icon: 1});
            $("#upload-file-id-" + file.lastModified).html("上传成功")
            $("#upload-filename-id-" + file.lastModified).html(filename)
            let token = localStorage.getItem("token");
            $.ajax({
                url: baseUrl+"/plan/insert/file/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    'planId': $('.layui-layer-title').text(),
                    'filename': filename,
                    'filesize': file.size,
                    'token': token
                },
                method: 'POST',
                success: function (res) {
                    if (res.code === 200){
                        layer.close(index)
                        console.log(res)
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg)
                    }
                }
            });
        }).catch((e) => {
            console.log(e)
            layer.msg('上传失败', {icon: 2});
            $("#upload-file-id-" + file.lastModified).html("上传失败")
        })
        //清空file
        $("#data-btn-upload").val("")
        _uploadFile = null
    });
    // 监听排序事件
@@ -240,6 +359,30 @@
    table.on('tool(priQuote)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'moreCstmr':
                top.cstmrByMore = data.cstmrId$;
                admin.popupRight({
                    type: 1,
                    window: "top",
                    area: "1250px",
                    url: "../cstmr/cstmr_more.html",
                    end: function () {
                        // $(".layui-laypage-btn")[0].click();
                    }
                })
                break;
            case 'morePlan':
                top.planByMore = data.itemId;
                admin.popupRight({
                    type: 1,
                    window: "top",
                    area: "1250px",
                    url: "../plan/plan_more_other.html",
                    end: function () {
                        // $(".layui-laypage-btn")[0].click();
                    }
                })
                break;
            case 'approval':
                layer.confirm('审批通过?', {
                    skin: 'layui-layer-admin',
@@ -277,13 +420,14 @@
                })
                break;
            case "quote":
                console.log(data)
                layer.open({
                    type: 2,
                    title: '报价单编辑',
                    maxmin: true,
                    area: [top.detailWidth, top.detailHeight],
                    shadeClose: false,
                    content: 'priQuote_detail.html?id=' + data.id,
                    content: 'priQuote_detail.html?id=' + data.id + "&template=" + data.template,
                    success: function(layero, index){
                        // layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                    }
@@ -314,7 +458,63 @@
                    })
                });
                break;
            case "uploadLink":
                // 打开弹窗
                // 构建带参数的内容
                console.log(data)
                layer.open({
                    type: 1,
                    title: '上传文件-'+data.itemId,
                    content: $('#myModal')
                });
                // 获取路径下的文件列表,使用 jQuery 的 ajax 方法
                $.ajax({
                    url: '/plan/view/file/auth',
                    data:{
                        planId:data.itemId
                    },
                    success: function(response) {
                        if (response.code==200){
                            var targetTable = document.getElementById("data-btn-file3");
                            targetTable.innerHTML = '';
                            // 将获取到的文件列表添加到文件队列中进行显示
                            response.data.forEach(function(file,index) {
                                // 创建tr元素
                                var tr = document.createElement("tr");
                                tr.id = "upload-"+index;
                                tr.innerHTML = '<td>' + file.name + '</td>'
                                    + '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>'
                                    + '<td>' + file.userName + '</td>'
                                    // + '<td><div class="layui-progress" lay-filter="progress-demo-' + index ,100 + '%'+ '"><div class="layui-progress-bar" lay-percent=""></div></div></td>'
                                    + '<td>'+'已完成'+'</td>'
                                    + '<td>'
                                    + '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
                                    // + '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
                                    + '<a href="' + file.path + '" download class="layui-btn layui-btn-xs layui-btn-primary">下载</a>'
                                    + '</td>';
                                // 将tr元素添加到目标table中
                                targetTable.appendChild(tr);
                            });
                        }else {
                            console.log('Failed to get file list error.');
                        }
                    },
                    error: function() {
                        console.log('Failed to get file list.');
                    }
                });
                break;
        }
    });
    // 点击下载按钮时触发文件下载
    $('#data-btn-file3').on('click', 'a', function() {
        console.log(this)
        var downloadUrl = $(this).attr('href');
        let url = getObjectUrl(downloadUrl)
        layer.msg("准备下载中", {icon: 1});
        location.href = url
        return false;  // 阻止默认的链接跳转行为
    });
    // 搜索
@@ -346,7 +546,7 @@
                        maxmin: true,
                        area: [top.detailWidth, top.detailHeight],
                        shadeClose: false,
                        content: 'priQuote_detail.html?priQuoteBudgetId=' + data.field.id,
                        content: 'priQuote_detail.html?priQuoteBudgetId=' + data.field.id + "&template=" + data.field.template,
                        success: function(layero, index){
                            clearFormVal(layer.getChildFrame('#detail', index));
                            // layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
@@ -533,7 +733,7 @@
function getItemInfo(val) {
    $.ajax({
        url: baseUrl+"/priQuoteBudget/" + val + "/auth",
        url: baseUrl+"/priOnline2/" + val + "/auth",
        headers: {'token': localStorage.getItem('token')},
        method: 'GET',
        traditional:true,