中扬CRM客户关系管理系统
#
LSH
2023-12-02 afa3bc1e2f39f66f59ee9b15d6af16593acdc9a4
src/main/webapp/static/js/priOnline2/priOnline.js
@@ -1,11 +1,25 @@
var pageCurr;
var admin;
var treeCond;
let nowUserId2 = 0;
fPriOnline();
function fPriOnline() {
    layui.jquery.ajax({
        url: baseUrl + "/dashboard/user/id/popup/auth",
        data:{token : localStorage.getItem('token')},
        method: 'GET',
        success: function (res) {
            if (res.code === 200) {
                nowUserId2 = res.data;
            }
        }
    })
}
layui.config({
    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','element'], function () {
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
@@ -13,6 +27,7 @@
    var tree = layui.tree;
    var form = layui.form;
    var dropdown = layui.dropdown;
    var element = layui.element;
    admin = layui.admin;
    $('#organization').html(localStorage.getItem('nickname') + ' <i class="layui-icon">&#xe61a;</i>');
@@ -29,13 +44,14 @@
    // 树形图
    var organizationTree;
    window.loadTree = function (condition) {
    window.loadTree = function (condition,allSwitch) {
        var loadIndex = layer.load(2);
        $.ajax({
            url: baseUrl + "/dept/user/tree/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {
                'condition': condition
                'condition': condition,
                'allSwitch': allSwitch
            },
            method: 'POST',
            success: function (res) {
@@ -83,7 +99,7 @@
        cellMinWidth: 150,
        cols: [[
            {type: 'checkbox', fixed: 'left'}
            , {field: 'id', title: 'ID', sort: true, align: 'center', fixed: 'left', width: 80, hide: true}
            , {field: 'id', title: 'ID', sort: true, align: 'center', fixed: 'left', width: 80, hide: true, sort:true}
            , {
                field: 'templateName',
                align: 'center',
@@ -91,10 +107,10 @@
                style: 'color: #1890ff;cursor:pointer',
                event: 'moreCstmr',
                width: 350,
                hide: false
                hide: false, sort:true
            }
            , {field: 'cstmrId$', align: 'center', title: '客户id', hide: true}
            , {field: 'orderNum', align: 'center', title: '核价单号', hide: false}
            , {field: 'orderNum', align: 'center', title: '核价单号', hide: false, sort:true}
            , {
                field: 'planId$',
                align: 'center',
@@ -103,8 +119,8 @@
                event: 'morePlan',
                hide: false
            }
            , {field: 'itemId', align: 'center', title: '规划单号', hide: true}
            , {field: 'status$', align: 'center', title: '状态', hide: false}
            , {field: 'itemId', align: 'center', title: '规划单ID', hide: true, sort:true}
            , {field: 'statusAll$', align: 'center',title: '状态'}
            // ,{field: 'memberId$', align: 'center',title: ''}
            , {
                field: 'settle$',
@@ -117,10 +133,17 @@
            , {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}
            , {field: 'checkDataStatus$', align: 'center', title: '报价数据', hide: false,width: 80}
            , {field: 'createTime$', align: 'center', title: '创建时间', hide: true,width: 120}
            , {field: 'updateUserId$', align: 'center', title: '更新人员', hide: false,width: 80}
            , {field: 'updateTime$', align: 'center', title: '更新时间', hide: false,width: 120}
            ,{field: 'assistantHostSign$', align: 'left',title: '主副标记', hide: false,width: 80}
            ,{field: 'assistantHostSign', align: 'left',title: '主副标记', hide: true,width: 80}
            ,{field: 'hostPlanId', align: 'left',title: '主ID', hide: true,width: 80}
            ,{field: 'assistantPlanId', align: 'left',title: '副ID', hide: true,width: 80}
            ,{field: 'nowUserId', title: 'nowUserId', hide: true, templet:function(){return nowUserId2}}
            ,{field: 'userId',title: 'userId', hide: true}
            ,{field: 'memberId',title: 'memberId', hide: true}
            , {fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 350}
        ]],
        request: {
@@ -128,6 +151,9 @@
            pageSize: 'limit'
        },
        parseData: function (res) {
            res.data.records.forEach((item,index) => {
                item.nowUserId = nowUserId2
            })
            return {
                'code': res.code,
                'msg': res.msg,
@@ -259,6 +285,101 @@
        }
    });
    $("#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+"/pri/online/url/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;
@@ -271,7 +392,7 @@
                    title: data.name
                }, function (i) {
                    layer.close(i);
                    console.log(data)
                    // console.log(data)
                    approvalEnd(data.id);
                });
                break;
@@ -282,10 +403,10 @@
                    offset: '200px',
                    title: data.name
                }, function (i) {
                    console.log(data)
                    // console.log(data)
                    layer.close(i);
                    // 指定模板
                    if ((data.settle === 1 && data.settleSize===3) || (data.settle===2 && data.settleSize===4)) {
                    if (((data.settle === 1 && data.settleSize===3) || (data.settle===2 && data.settleSize===4)) && data.assistantHostSign==0) {
                        admin.open({
                            type: 1,
                            area: '300px',
@@ -507,7 +628,69 @@
                    }
                });
                break;
            case "uploadLink":
                // 打开弹窗
                // 构建带参数的内容
                var planIdSign = data.itemId;
                if (data.assistantHostSign==1){
                    planIdSign = data.hostPlanId;
                }
                layer.open({
                    type: 1,
                    title: '上传文件-'+planIdSign+'-'+data.id,
                    content: $('#myModal'),
                });
                // 获取路径下的文件列表,使用 jQuery 的 ajax 方法
                $.ajax({
                    url: '/pri/online/url/view/file/auth',
                    headers: {'token': localStorage.getItem('token')},
                    data:{
                        planId:planIdSign,
                        planIdI: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;  // 阻止默认的链接跳转行为
    });
    // 搜索
@@ -550,41 +733,41 @@
        });
    }
    /* 弹窗 - 新增、修改 */
    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');
            }
        });
    }
    // /* 弹窗 - 新增、修改 */
    // 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');
    //         }
    //     });
    // }
    //更新form
    function showEditForm(mData) {
@@ -679,34 +862,34 @@
        })
    }
    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});
                        }
                    }
                });
            }
        });
    }
    // 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});
    //                     }
    //                 }
    //             });
    //         }
    //     });
    // }
});