From 34f99d106551b51bf2af3bbd40c64624a3af25eb Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期六, 09 九月 2023 09:43:57 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/order/order.js |  434 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 333 insertions(+), 101 deletions(-)

diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index 895ec78..6ca4607 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -1,50 +1,164 @@
 var pageCurr;
+var pageCount = 0;
+var treeCond;
+var admin;
 layui.config({
     base: baseUrl + "/static/layui/lay/modules/"
-}).use(['table','laydate', 'form', 'admin'], function(){
+}).extend({
+    cascader: 'cascader/cascader',
+}).use(['table','laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function(){
     var table = layui.table;
     var $ = layui.jquery;
     var layer = layui.layer;
     var layDate = layui.laydate;
     var form = layui.form;
-    var admin = layui.admin;
+    admin = layui.admin;
+    var xmSelect = layui.xmSelect;
+    var cascader = layui.cascader;
+    var tree = layui.tree;
+    var dropdown = layui.dropdown;
+
+    $('#organization').html(localStorage.getItem('nickname') + ' <i class="layui-icon">&#xe61a;</i>');
+
+    // 閮ㄩ棬浜哄憳 绛涢��
+    dropdown.render({
+        elem: '#organization'
+        ,content: ['<div id="organizationTree" style="height: calc(100vh - 525px);border: none"></div>'].join('')
+        ,style: 'width: 370px; height: 350px; padding: 0 15px; box-shadow: 1px 1px 30px rgb(0 0 0 / 12%);'
+        ,ready: function(){
+            loadTree();
+        }
+    });
+
+    // 鏁版嵁鍚屾
+    dropdown.render({
+        elem: '#data-btn'
+        ,align: 'right'
+        ,style: 'border-radius: 5px;'
+        ,className: 'site-dropdown-demo'
+        ,data: [
+            {
+                title: '妯℃澘涓嬭浇'
+                ,templet: '<i class="layui-icon layui-icon-template-1"></i>{{d.title}}'
+                ,id: 1
+            },
+            {
+                title: '瀵煎叆 Excel'
+                ,templet: '<i class="layui-icon layui-icon-upload"></i>{{d.title}}'
+                ,id: 2
+            },
+            {type: '-'}, //鍒嗗壊绾�
+            {
+                title: '瀵煎嚭 Excel'
+                ,templet: '<i class="layui-icon layui-icon-export"></i>{{d.title}}'
+                ,id: 3
+            }
+        ]
+        ,click: async function(item){
+            switch (item.id) {
+                case 1:
+                    // 妯℃澘涓嬭浇
+                    layer.load(1, {shade: [0.1,'#fff']});
+                    location.href = baseUrl + "/mould/璺熻釜椤圭洰瀵煎叆妯℃澘.xls";
+                    layer.closeAll('loading');
+                    break
+                case 2:
+                    // 瀵煎叆 Excel
+                    $("#importExcel").trigger("click");
+                    break
+                case 3:
+                    // 瀵煎嚭 Excel
+                    layer.msg("鏉ヤ笉鍙婂仛锛岀瓑绛�", {icon: 6});
+                    break
+                default:
+                    break
+            }
+        }
+    });
+
+    // 鏍戝舰鍥�
+    var organizationTree;
+    window.loadTree = function(condition){
+        var loadIndex = layer.load(2);
+        $.ajax({
+            url: baseUrl+"/dept/user/tree/auth",
+            headers: {'token': localStorage.getItem('token')},
+            data: {
+                'condition': condition
+            },
+            method: 'POST',
+            success: function (res) {
+                layer.close(loadIndex);
+                if (res.code === 200){
+                    organizationTree = tree.render({
+                        elem: '#organizationTree',
+                        id: 'organizationTree',
+                        onlyIconControl: true,
+                        data: res.data,
+                        click: function (obj) {
+                            treeCond = {
+                                key: obj.data.key,
+                                val: obj.data.id
+                            }
+                            $('#organization').html(obj.data.title + ' <i class="layui-icon">&#xe61a;</i>');
+                            $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
+                            $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click');
+                            clearFormVal($('#search-box'));
+                            tableIns.reload({
+                                where: {[obj.data.key]: obj.data.id},
+                                page: {curr: 1}
+                            });
+                        }
+                    });
+                    treeData = res.data;
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                } else {
+                    layer.msg(res.msg)
+                }
+            }
+        })
+    }
+
+    let where = {}
+    if (getQueryVariable('status') !== false) {
+        where = {status: getQueryVariable('status')}
+    }
 
     // 鏁版嵁娓叉煋
     tableIns = table.render({
         elem: '#order',
         headers: {token: localStorage.getItem('token')},
-        url: baseUrl+'/order/list/auth',
+        url: baseUrl+'/order/page/auth',
         page: true,
         limit: 15,
         limits: [15, 30, 50, 100, 200, 500],
-        toolbar: '#toolbar',
-        cellMinWidth: 50,
-        height: 'full-120',
+        // cellMinWidth: 100,
+        height: 'full-148',
+        // size: 'sm',
+        skin: 'line',
+        where: where,
         cols: [[
             {type: 'checkbox'}
-            ,{field: 'id', align: 'center',title: 'ID'}
-            ,{field: 'hostId$', align: 'center',title: '鎵�灞炲晢鎴�'}
-            ,{field: 'deptId$', align: 'center',title: '鎵�灞為儴闂�'}
-            ,{field: 'userId$', align: 'center',title: '鎵�灞炰汉鍛�'}
-            ,{field: 'cstmrId$', align: 'center',title: '鐢叉柟鍗曚綅'}
-            ,{field: 'uuid', align: 'center',title: '瀹㈡埛浠e彿'}
-            ,{field: 'name', align: 'center',title: '瀹㈡埛鍚嶇О'}
-            ,{field: 'money', align: 'center',title: '鎬婚噾棰�'}
-            ,{field: 'company$', align: 'center',title: '鎵�灞炲叕鍙�'}
-            ,{field: 'remarks', align: 'center',title: '澶囨敞'}
-            ,{field: 'director$', align: 'center',title: '璐熻矗浜�'}
-            ,{field: 'province', align: 'center',title: '鐪�'}
-            ,{field: 'city', align: 'center',title: '甯�'}
-            ,{field: 'district', align: 'center',title: '鍘�'}
-            ,{field: 'town', align: 'center',title: '闀�'}
-            ,{field: 'addr', align: 'center',title: '璇︾粏鍦板潃'}
-            ,{field: 'files', align: 'center',title: '闄勪欢'}
-            ,{field: 'status$', align: 'center',title: '鐘舵��'}
-            ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
-            ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
-            ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
-            ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
-            ,{field: 'memo', align: 'center',title: '娉ㄩ噴'}
+            ,{field: 'name', align: 'left',title: '璺熻釜椤圭洰鍚嶇О', style: 'color: #1890ff;cursor:pointer', event: 'more', width: 300}
+            ,{field: 'uuid', align: 'left',title: '椤圭洰浠e彿'}
+            ,{field: 'cstmrId$', align: 'left',title: '鐢叉柟鍗曚綅', style: 'color: #1890ff;cursor:pointer', event: 'cstmrMore', templet:function(d){return emptyShow(d.cstmrId$)}}
+            ,{field: 'pcd$', align: 'left',title: '鎵�灞炲尯鍩�', templet:function(d){return emptyShow(d.pcd$)}}
+            ,{field: 'addr', align: 'left',title: '椤圭洰鍦板潃', templet:function(d){return emptyShow(d.addr)}}
+            ,{field: 'money', align: 'right',title: '椤圭洰棰勭畻閲戦', templet:function(d){return emptyShow(d.money)}}
+            ,{field: 'director$', align: 'left',title: '椤圭洰璐熻矗浜�', templet:function(d){return emptyShow(d.director$)}}
+            ,{field: 'remarks', align: 'left',title: '澶囨敞', templet:function(d){return emptyShow(d.remarks)}}
+            ,{field: 'createTime$', align: 'left',title: '娣诲姞鏃堕棿'}
+            ,{field: 'company$', align: 'left',title: '鎵�灞炲叕鍙�', hide: true}
+            ,{field: 'province', align: 'left',title: '鐪�', hide: true}
+            ,{field: 'city', align: 'left',title: '甯�', hide: true}
+            ,{field: 'district', align: 'left',title: '鍘�', hide: true}
+            ,{field: 'town', align: 'left',title: '闀�', hide: true}
+            ,{field: 'status$', align: 'left',title: '鐘舵��'}
+            ,{field: 'files', align: 'left',title: '闄勪欢', hide: true}
+            ,{field: 'updateBy$', align: 'left',title: '淇敼浜哄憳', hide: true}
+            ,{field: 'updateTime$', align: 'left',title: '淇敼鏃堕棿', hide: true}
+            ,{field: 'memo', align: 'left',title: '娉ㄩ噴', hide: true}
 
             ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
         ]],
@@ -68,8 +182,26 @@
                 top.location.href = baseUrl+"/";
             }
             pageCurr=curr;
+            pageCount = count;
             limit();
         }
+    });
+
+    // 娣诲姞
+    $("#orderAddBtn").click(function () {
+        showEditModel();
+    });
+
+    // 鍒犻櫎
+    form.on('submit(orderDel)', function (data) {
+        let checkStatus = layui.table.checkStatus('order').data;
+        if (checkStatus.length === 0) {
+            layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+            return;
+        }
+        del(checkStatus.map(function (d) {
+            return d.id;
+        }));
     });
 
     // 鐩戝惉鎺掑簭浜嬩欢
@@ -86,67 +218,35 @@
         });
     });
 
-    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
-    table.on('toolbar(order)', function (obj) {
-        var checkStatus = table.checkStatus(obj.config.id).data;
-        switch(obj.event) {
-            case 'addData':
-                showEditModel();
-                break;
-            case 'deleteData':
-               if (checkStatus.length === 0) {
-                   layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
-                   return;
-               }
-               del(checkStatus.map(function (d) {
-                   return d.id;
-               }));
-               break;
-            case 'exportData':
-                admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
-                    var titles=[];
-                    var fields=[];
-                    obj.config.cols[0].map(function (col) {
-                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
-                            titles.push(col.title);
-                            fields.push(col.field);
-                        }
-                    });
-                    var exportData = {};
-                    $.each($('#search-box [name]').serializeArray(), function() {
-                        exportData[this.name] = this.value;
-                    });
-                    var param = {
-                        'order': exportData,
-                        'fields': fields
-                    };
-                    $.ajax({
-                        url: baseUrl+"/order/export/auth",
-                        headers: {'token': localStorage.getItem('token')},
-                        data: JSON.stringify(param),
-                        dataType:'json',
-                        contentType:'application/json;charset=UTF-8',
-                        method: 'POST',
-                        success: function (res) {
-                            layer.closeAll();
-                            if (res.code === 200) {
-                                table.exportFile(titles,res.data,'xls');
-                            } else if (res.code === 403) {
-                                top.location.href = baseUrl+"/";
-                            } else {
-                                layer.msg(res.msg, {icon: 2})
-                            }
-                        }
-                    });
-                });
-                break;
-        }
-    });
 
     // 鐩戝惉琛屽伐鍏蜂簨浠�
     table.on('tool(order)', function(obj){
         var data = obj.data;
         switch (obj.event) {
+            case 'more':
+                top.orderByMore = data.id;
+                admin.popupRight({
+                    type: 1,
+                    window: "top",
+                    area: "1250px",
+                    url: "order_more.html",
+                    end: function () {
+                        // $(".layui-laypage-btn")[0].click();
+                    }
+                })
+                break;
+            case 'cstmrMore':
+                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 'edit':
                 showEditModel(data);
                 break;
@@ -160,13 +260,31 @@
     function showEditModel(mData) {
         admin.open({
             type: 1,
-            area: '600px',
-            title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+            area: '1500px',
+            title: (mData ? '淇敼' : '娣诲姞') + '璺熻釜椤圭洰',
             content: $('#editDialog').html(),
             success: function (layero, dIndex) {
+                let cstmrSel = loadCstmrSel();
+                let companySel = loadCompanySel();
+                if (mData) {
+                    $('#cascaderVal').val(mData.pcd);
+                    if (mData.cstmrId) { cstmrSel.setValue([{name: mData.cstmrId$, value: mData.cstmrId}]); }
+                    if (mData.company) { companySel.setValue([{name: mData.company$, value: mData.company}]); }
+                }
                 layDateRender(mData);
+                cascaderRender();
                 form.val('detail', mData);
                 form.on('submit(editSubmit)', function (data) {
+                    data.field.cstmrId = cstmrSel.getValue()[0] ? cstmrSel.getValue()[0].value : null;
+                    data.field.company = companySel.getValue()[0] ? companySel.getValue()[0].value : null;
+                    if (!data.field.company) {
+                        layer.msg("鎵�灞炲叕鍙镐笉鑳戒负绌�", {icon: 2});
+                        return false;
+                    }
+                    if (!data.field.cstmrId) {
+                        layer.msg("鐢叉柟鍗曚綅涓嶈兘涓虹┖", {icon: 2});
+                        return false;
+                    }
                     var loadIndex = layer.load(2);
                     $.ajax({
                         url: baseUrl+"/order/"+(mData?'update':'add')+"/auth",
@@ -225,15 +343,10 @@
     // 鎼滅储
     form.on('submit(search)', function (data) {
         pageCurr = 1;
+        pageCount = 0;
         tableReload(false);
     });
 
-    // 閲嶇疆
-    form.on('submit(reset)', function (data) {
-        pageCurr = 1;
-        clearFormVal($('#search-box'));
-        tableReload(false);
-    });
 
     // 鏃堕棿閫夋嫨鍣�
     function layDateRender(data) {
@@ -258,6 +371,75 @@
     }
     layDateRender();
 
+    // 鐪佸競鍖洪�夋嫨
+    function cascaderRender() {
+        cascader.render({
+            elem: '#cascaderVal',
+            data: citysData,
+            itemHeight: '250px',
+            filterable: true,
+            onChange: function (values, data) {
+                // console.log(values);console.log(data);
+            }
+        });
+    }
+
+    window.loadCstmrSel = function () {
+        return xmSelect.render({
+            el: '#cstmrXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/cstmr/all/get/kv",
+                    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.loadCompanySel = function () {
+        return xmSelect.render({
+            el: '#companyXmlSel',
+            autoRow: true,
+            filterable: true,
+            remoteSearch: true,
+            radio: true,
+            remoteMethod: function (val, cb, show) {
+                $.ajax({
+                    url: baseUrl + "/company/all/get/kv",
+                    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});
+                        }
+                    }
+                });
+            }
+        });
+    }
+
 });
 
 // 鍏抽棴鍔ㄤ綔
@@ -265,13 +447,63 @@
     parent.layer.closeAll();
 });
 
-function tableReload(child) {
-    var searchData = {};
-    $.each($('#search-box [name]').serializeArray(), function() {
-        searchData[this.name] = this.value;
+function tableReload() {
+    if (pageCount === 0) {
+        let searchData = {};
+        $.each($('#search-box [name]').serializeArray(), function() {
+            searchData[this.name] = this.value;
+        });
+        if (treeCond) {
+            searchData[treeCond.key] = treeCond.val;
+        }
+        tableIns.reload({
+            where: searchData,
+            page: {curr: pageCurr}
+        });
+    } else {
+        $(".layui-laypage-btn")[0].click();
+    }
+}
+
+function upload(obj){
+    if(!obj.files) {
+        return;
+    }
+    var file = obj.files[0];
+    admin.confirm('纭鍚屾 [' + file.name +'] 鏂囦欢鍚楋紵', function (index) {
+        layer.load(1, {shade: [0.1,'#fff']});
+        var url = baseUrl + "/order/excel/import/auth";
+        var form = new FormData();
+        form.append("file", file);
+        let xhr = new XMLHttpRequest();
+        xhr.open("post", url, true);
+        xhr.setRequestHeader('token', localStorage.getItem('token'));
+        xhr.onload = uploadComplete;
+        xhr.onerror =  uploadFailed;
+        xhr.onloadend = function () {
+            layer.closeAll('loading');
+        };
+        // xhr.upload.onprogress = progressFunction;
+        xhr.upload.onloadstart = function(){
+            ot = new Date().getTime();
+            oloaded = 0;
+        };
+        xhr.send(form);
+    }, function(index){
     });
-    tableIns.reload({
-        where: searchData,
-        page: {curr: pageCurr}
-     });
+}
+function uploadComplete(evt) {
+    let res = JSON.parse(evt.target.responseText);
+    if(res.code === 200) {
+        layer.msg(res.msg, {icon: 1});
+        tableReload();
+    } else {
+        alert(res.msg);
+        // layer.msg(res.msg, {icon: 2});
+    }
+}
+function uploadFailed(evt) {
+    let res = JSON.parse(evt.target.responseText);
+    alert(res.msg);
+    // layer.msg(res.msg, {icon: 2});
 }

--
Gitblit v1.9.1