中扬CRM客户关系管理系统
#
LSH
2023-11-07 c32dfb847e5c333ea788c07dea179be0e9a73bb7
src/main/webapp/static/js/priOnline2/priOnline.js
@@ -5,7 +5,7 @@
    base: baseUrl + "/static/layui/lay/modules/"
}).extend({
    cascader: 'cascader/cascader',
}).use(['table','laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function() {
}).use(['table', 'laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function () {
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
@@ -104,9 +104,7 @@
                hide: false
            }
            , {field: 'itemId', align: 'center', title: '规划单号', hide: true}
            , {field: 'createTime$', align: 'center', title: '创建时间'}
            , {field: 'updateTime$', align: 'center', title: '更新时间'}
            , {field: 'status$', align: 'center', title: '状态'}
            , {field: 'status$', align: 'center', title: '状态', hide: false}
            // ,{field: 'memberId$', align: 'center',title: ''}
            , {
                field: 'settle$',
@@ -116,9 +114,13 @@
                event: 'more',
                hide: false
            }
            , {field: 'user$', align: 'center', title: '业务员'}
            , {field: 'updateUserId$', align: 'center', title: '更新人员'}
            , {field: 'checkDataStatus$', align: 'center', title: '报价数据'}
            , {field: 'settleSize', align: 'center', title: '流程长度', hide: true}
            , {field: 'user$', align: 'center', title: '业务员', hide: false}
            , {field: 'deptId$', align: 'center', title: '部门', hide: true}
            , {field: 'checkDataStatus$', align: 'center', title: '报价数据', hide: false}
            , {field: 'createTime$', align: 'center', title: '创建时间', hide: true}
            , {field: 'updateUserId$', align: 'center', title: '更新人员', hide: false}
            , {field: 'updateTime$', align: 'center', title: '更新时间', hide: false}
            , {fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 350}
        ]],
        request: {
@@ -174,6 +176,9 @@
        switch (obj.event) {
            case 'addBlank':
                showEditModel();
                break;
            case 'addBlank2':
                showEditModel2();
                break;
            case 'refreshData':
                tableIns.reload({
@@ -254,6 +259,96 @@
        }
    });
    $("#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-file-id-' + file.lastModified + '">准备上传</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)
        _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
        $("#upload-file-id-" + file.lastModified).html("上传中")
        putObject(file).then((result) => {
            var filename = result.name
            layer.msg('上传成功', {icon: 1});
            $("#upload-file-id-" + file.lastModified).html("上传成功")
            $("#upload-filename-id-" + file.lastModified).html(filename)
            $.ajax({
                url: baseUrl+"/plan/insert/file/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    'planId': $('.layui-layer-title').text(),
                    'filename': filename,
                    'filesize': file.size
                },
                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
    });
    // 监听行工具事件
    table.on('tool(priOnline)', function (obj) {
        var data = obj.data;
@@ -266,6 +361,7 @@
                    title: data.name
                }, function (i) {
                    layer.close(i);
                    console.log(data)
                    approvalEnd(data.id);
                });
                break;
@@ -276,13 +372,14 @@
                    offset: '200px',
                    title: data.name
                }, function (i) {
                    console.log(data)
                    layer.close(i);
                    // 指定规划员
                    if (data.settle === 1) {
                    // 指定模板
                    if ((data.settle === 1 && data.settleSize===3) || (data.settle===2 && data.settleSize===4)) {
                        admin.open({
                            type: 1,
                            area: '300px',
                            title: '选择规划员',
                            title: '选择报价模板',
                            content: $('#plannerListDialog').html(),
                            success: function (layero, dIndex) {
                                let plannerSel = xmSelect.render({
@@ -500,7 +597,62 @@
                    }
                });
                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><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;  // 阻止默认的链接跳转行为
    });
    // 搜索
@@ -536,6 +688,42 @@
                        }
                    });
                    return false;
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
            }
        });
    }
    /* 弹窗 - 新增、修改 */
    function showEditModel2(mData) {
        admin.open({
            type: 1,
            area: '800px',
            title: '接取' + '核价',
            content: $('#editDialogHJ').html(),
            success: function (layero, dIndex) {
                let loadNameXml = loadNameXmlSel()
                form.val('detailHJ', mData);
                form.on('submit(editSubmitHJ)', function (data) {
                    data.field.id = loadNameXml.getValue()[0] ? loadNameXml.getValue()[0].id : null;
                    $.ajax({
                        url: baseUrl+"/priOnline2/HJ/add/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload()
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
@@ -581,10 +769,11 @@
            }
        });
    }
    function approvalEnd(planId, plannerId, dIdx) {
    function approvalEnd(priOnlineId, plannerId, dIdx) {
        let loadIndex = layer.load(2);
        $.ajax({
            url: baseUrl+"/priOnline2/approvalEnd/auth",
            url: baseUrl + "/priOnline2/approvalEnd/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {
                priOnlineId: priOnlineId,
@@ -596,11 +785,11 @@
                    layer.close(dIdx);
                }
                layer.close(loadIndex);
                if (res.code === 200){
                if (res.code === 200) {
                    layer.msg(res.msg, {icon: 1});
                    tableReload();
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/";
                } else {
                    layer.msg(res.msg, {icon: 2});
                }
@@ -611,7 +800,7 @@
    function approval(priOnlineId, plannerId, dIdx) {
        let loadIndex = layer.load(2);
        $.ajax({
            url: baseUrl+"/priOnline2/approval/auth",
            url: baseUrl + "/priOnline2/approval/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {
                priOnlineId: priOnlineId,
@@ -623,11 +812,11 @@
                    layer.close(dIdx);
                }
                layer.close(loadIndex);
                if (res.code === 200){
                if (res.code === 200) {
                    layer.msg(res.msg, {icon: 1});
                    tableReload();
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/";
                } else {
                    layer.msg(res.msg, {icon: 2});
                }
@@ -635,16 +824,45 @@
        })
    }
    window.loadNameXmlSel = function () {
        return xmSelect.render({
            el: '#nameXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            clickClose: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/priOnline2/HJ/search/auth",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
});
// 关闭动作
$(document).on('click','#data-detail-close', function () {
$(document).on('click', '#data-detail-close', function () {
    parent.layer.closeAll();
});
function tableReload(child) {
    var searchData = {};
    $.each($('#search-box [name]').serializeArray(), function() {
    $.each($('#search-box [name]').serializeArray(), function () {
        searchData[this.name] = this.value;
    });
    (child ? parent.tableIns : tableIns).reload({
@@ -654,14 +872,14 @@
        },
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
                top.location.href = baseUrl + "/";
            }
            pageCurr=curr;
            pageCurr = curr;
            if (res.data.length === 0 && count !== 0) {
                tableIns.reload({
                    where: searchData,
                    page: {
                        curr: pageCurr-1
                        curr: pageCurr - 1
                    }
                });
                pageCurr -= 1;
@@ -675,9 +893,9 @@
    for (var val in data) {
        var find = el.find(":input[id='" + val + "']");
        find.val(data[val]);
        if (showImg){
        if (showImg) {
            var next = find.next();
            if (next.get(0)){
            if (next.get(0)) {
                if (next.get(0).localName === "img") {
                    find.hide();
                    next.attr("src", data[val]);
@@ -697,13 +915,13 @@
function detailScreen(index) {
    var detail = layer.getChildFrame('#data-detail', index);
    var height = detail.height()+60;
    if (height > ($(window).height()*0.9)) {
        height = ($(window).height()*0.9);
    var height = detail.height() + 60;
    if (height > ($(window).height() * 0.9)) {
        height = ($(window).height() * 0.9);
    }
    layer.style(index, {
        top: (($(window).height()-height)/3)+"px",
        height: height+'px'
        top: (($(window).height() - height) / 3) + "px",
        height: height + 'px'
    });
    $(".layui-layer-shade").remove();
}