From a4aa79c7f7832669aee04e315c303531e782c521 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期三, 26 七月 2023 13:30:54 +0800 Subject: [PATCH] #甲方单位页面优化 --- src/main/webapp/static/js/cstmr/cstmr.js | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 251 insertions(+), 43 deletions(-) diff --git a/src/main/webapp/static/js/cstmr/cstmr.js b/src/main/webapp/static/js/cstmr/cstmr.js index 4123370..6b98850 100644 --- a/src/main/webapp/static/js/cstmr/cstmr.js +++ b/src/main/webapp/static/js/cstmr/cstmr.js @@ -1,57 +1,170 @@ var pageCurr; +var pageCount = 0; +var treeCond; +var admin; layui.config({ base: baseUrl + "/static/layui/lay/modules/" }).extend({ - dropdown: 'dropdown/dropdown', -}).use(['table','laydate', 'form', 'admin', 'xmSelect', 'dropdown', 'element'], function(){ + 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"></i>'); + + // 閮ㄩ棬浜哄憳 绛涢�� + dropdown.render({ + elem: '#organization' + ,content: ['<div id="organizationTree" style="height: calc(330px);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"); + // let arrFileHandle = await window.showOpenFilePicker() + // let file = await arrFileHandle[0].getFile(); + // upload(file); + break + case 3: + // 瀵煎嚭 Excel + layer.msg("鏉ヤ笉鍙婂仛锛岀瓑绛�", {icon: 6}); + break + default: + break + } + } + }); + + // 鏍戝舰鍥� + var organizationTree; + window.loadTree = function(followerName,conditionName,condition){ + var loadIndex = layer.load(2); + $.ajax({ + url: baseUrl+"/dept/user/tree/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + 'followerName' : followerName, + 'conditionName' : conditionName, + '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"></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) + } + } + }) + } // 鏁版嵁娓叉煋 tableIns = table.render({ elem: '#cstmr', headers: {token: localStorage.getItem('token')}, - url: baseUrl+'/cstmr/list/auth', + url: baseUrl+'/cstmr/page/auth', page: true, limit: 15, limits: [15, 30, 50, 100, 200, 500], - cellMinWidth: 100, - height: 'full-120', - size: 'sm', + // cellMinWidth: 100, + height: 'full-148', + // size: 'sm', skin: 'line', cols: [[ {type: 'checkbox'} // ,{field: 'id', align: 'center',title: 'ID'} // ,{field: 'hostId$', align: 'center',title: '鎵�灞炲晢鎴�'} - ,{field: 'deptId$', align: 'center',title: '鎵�灞為儴闂�', hide: true} - ,{field: 'userId$', align: 'center',title: '鎵�灞炰汉鍛�'} - ,{field: 'cstmrType$', align: 'center',title: '瀹㈡埛绫诲埆'} - ,{field: 'uuid', align: 'center',title: '瀹㈡埛浠e彿'} - ,{field: 'name', align: 'center',title: '瀹㈡埛鍚嶇О'} - ,{field: 'simple', align: 'center',title: '瀹㈡埛绠�绉�', hide: true} - ,{field: 'rela', align: 'center',title: '瀹㈡埛鍏崇郴'} - ,{field: 'tel', align: 'center',title: '鐢佃瘽'} - ,{field: 'contacts', align: 'center',title: '瀹㈡埛鑱旂郴浜�'} - ,{field: 'remarks', align: 'center',title: '澶囨敞', hide: true} - ,{field: 'director$', align: 'center',title: '璐熻矗浜�'} - ,{field: 'province', align: 'center',title: '鐪�', hide: true} - ,{field: 'city', align: 'center',title: '甯�', hide: true} - ,{field: 'district', align: 'center',title: '鍘�', hide: true} - ,{field: 'town', align: 'center',title: '闀�', hide: true} - ,{field: 'addr', align: 'center',title: '璇︾粏鍦板潃'} - ,{field: 'type$', align: 'center',title: '鍖哄垎'} - ,{field: 'files', align: 'center',title: '闄勪欢', hide: true} - ,{field: 'status$', align: 'center',title: '鐘舵��', hide: true} - ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳', hide: true} - ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿', hide: true} - ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'} - ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'} - ,{field: 'memo', align: 'center',title: '娉ㄩ噴', hide: true} + ,{field: 'name', align: 'left',title: '瀹㈡埛鍚嶇О', style: 'color: #1890ff;cursor:pointer', event: 'more', width: 350} + ,{field: 'uuid', align: 'left',title: '瀹㈡埛浠e彿'} + ,{field: 'addr', align: 'left',title: '璇︾粏鍦板潃', templet:function(d){return emptyShow(d.addr)}} + ,{field: 'tel', align: 'left',title: '鐢佃瘽', templet:function(d){return emptyShow(d.tel)}} + ,{field: 'remarks', align: 'left',title: '澶囨敞', templet:function(d){return emptyShow(d.remarks)}} + ,{field: 'cstmrType$', align: 'left',title: '瀹㈡埛绫诲埆'} + ,{field: 'userId$', align: 'left',title: '娣诲姞浜哄憳'} + ,{field: 'createTime$', align: 'left',title: '娣诲姞鏃堕棿'} + ,{field: 'deptId$', align: 'left',title: '鎵�灞為儴闂�', hide: true} + ,{field: 'simple', align: 'left',title: '瀹㈡埛绠�绉�', hide: true} + ,{field: 'rela', align: 'left',title: '瀹㈡埛鍏崇郴', hide: true} + ,{field: 'contacts', align: 'left',title: '瀹㈡埛鑱旂郴浜�', hide: true} + ,{field: 'director$', 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: 'type$', align: 'left',title: '鍖哄垎', hide: true} + ,{field: 'files', align: 'left',title: '闄勪欢', hide: true} + ,{field: 'status$', align: 'left',title: '鐘舵��', hide: true} + // ,{field: 'createBy$', align: 'center',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} ]], @@ -75,12 +188,21 @@ top.location.href = baseUrl+"/"; } pageCurr=curr; + pageCount = count; limit(); } }); // 娣诲姞 $("#cstmrAddBtn").click(function () { + form.verify({ + account: function(value, item){ + var min = item.getAttribute('lay-min'); + if(value.length < min){ + return '瀹㈡埛鍚嶇О涓嶈兘灏忎簬'+min+'涓瓧绗︾殑闀垮害'; + } + } + }); showEditModel(); }); @@ -96,7 +218,6 @@ })); }); - // 鐩戝惉鎺掑簭浜嬩欢 table.on('sort(cstmr)', function (obj) { var searchData = {}; @@ -111,11 +232,22 @@ }); }); - // 鐩戝惉琛屽伐鍏蜂簨浠� table.on('tool(cstmr)', function(obj){ var data = obj.data; switch (obj.event) { + case 'more': + top.cstmrByMore = data.id; + admin.popupRight({ + type: 1, + window: "top", + area: "1250px", + url: "cstmr_more.html", + end: function () { + // $(".layui-laypage-btn")[0].click(); + } + }) + break; case 'edit': showEditModel(data); break; @@ -133,7 +265,19 @@ title: (mData ? '淇敼' : '娣诲姞') + '鐢叉柟鍗曚綅', content: $('#editDialog').html(), success: function (layero, dIndex) { + form.verify({ + name: function(value, item){ + var min = item.getAttribute('lay-min'); + if(value.length < min){ + return '瀹㈡埛鍚嶇О涓嶈兘灏忎簬'+min+'涓瓧绗︾殑闀垮害'; + } + } + }); + if (mData) { + $('#cascaderVal').val(mData.pcd); + } layDateRender(mData); + cascaderRender(); form.val('detail', mData); form.on('submit(editSubmit)', function (data) { var loadIndex = layer.load(2); @@ -147,7 +291,7 @@ if (res.code === 200){ layer.close(dIndex); layer.msg(res.msg, {icon: 1}); - tableReload(); + tableReload() } else if (res.code === 403){ top.location.href = baseUrl+"/"; }else { @@ -194,7 +338,8 @@ // 鎼滅储 form.on('submit(search)', function (data) { pageCurr = 1; - tableReload(false); + pageCount = 0; + tableReload(); }); // 鏃堕棿閫夋嫨鍣� @@ -220,6 +365,19 @@ } layDateRender(); + // 鐪佸競鍖洪�夋嫨 + function cascaderRender() { + cascader.render({ + elem: '#cascaderVal', + data: citysData, + itemHeight: '250px', + filterable: true, + onChange: function (values, data) { + // console.log(values);console.log(data); + } + }); + } + }); // 鍏抽棴鍔ㄤ綔 @@ -227,13 +385,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 + "/cstmr/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