
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <title>设备上下线统计title>
-
- <script type="text/javascript" src="../../../language/language.js">script>
- <script type="text/javascript" src="../../proto/protobuf.min.js">script>
- <script type="text/javascript" src="../../component/js/common.js">script>
- <script type="text/javascript" src="../../component/js/commonNew.js">script>
-
- <script type="text/javascript" src="../../layui/layui.js?r=3.0">script>
- <link type="text/css" rel="stylesheet" href="../../layui/css/layui_base.css"/>
- <script type="text/javascript" src="../../component/js/jquery-2.1.0.min.js">script>
-
-
- <script src="../../component/js/xlsx.js">script>
- <script src="../../component/xlsx/dom.js">script>
- <script src="../../component/xlsx/xlsx.core.min.js">script>
-
- <script type="text/javascript" src="./error.js?r=1.3.3">script>
-
- head>
-
- <body>
- <form class="layui-form">
-
- <div id="none">
- <table class="layui-table" lay-filter="tabView" id="tabView">table>
- div>
-
- form>
- body>
-
- <script>
- var userPerson = getUser();
- var httpUser = { userName: userPerson.name, userGuid: userPerson.sessionId };
-
- let IPS;
- let str = document.domain;
- if (document.domain == 'localhost' || document.domain == "192.168.100.50") {
- IPS = 'https://xxc.chinamdvr.com:7050/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- } else {
- IPS = 'https://www.chinamdvr.com:9201/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- }
-
- let $, element, form, laydate, layer, tableView, util;
-
- let listData = [], listDataDetail = [], radioIndex = 0, objData = {}, dataDetail = {};
-
- let colsList = [
- { field: 'id', title: '', width: 50, //给需要展开的列添加状态event,添加模板
- event:'collapse',
- templet: function(res) {
- return ''
- +''
- }
- },
- { field: 'region', title: "网点所在区", align: 'center' },
- { field: 'required', title: "安装总数", align: 'center' },
- { field: 'installed', title: "已安装总数", align: 'center' },
- { field: 'checked', title: "已验收数量", align: 'center' },
- { field: 'installNo', title: "未验收数量", align: 'center' },
- { field: 'process', title: "安装进度", align: 'center', templet: schedule },
- ];
-
- layui.use(['element', 'form', 'laydate', 'layer', "util"], function(){
- form = layui.form, laydate = layui.laydate, layer = layui.layer;
- util = layui.util
- element = layui.element;
- $ = layui.$;
-
- tableRender();
-
- interfaceParam();
- });
-
- /** 进度条 */
- function schedule(d) {
- //设置页面进度条
- return '' +
- '
- ''
- }
-
- function tableRender () {
- layui.use('table', function () {
- tableView = layui.table;
- // 渲染第一个表格
- tableView.render({
- elem: '#tabView',
- data: listData,
- height: '700',
- toolbar: '#toolbarDemo',
- defaultToolbar: [{
- title: languageTL.historyMap.exportXls,
- layEvent: 'export',
- icon: 'layui-icon-export'
- }],
- cellMinWidth: 80,
- cols: [colsList],
- page: true, //是否显示分页
- limits: [10, 20, 50, 100],
- page: {
- count: listData.length,
- prev:languageTL.common. previousStr,
- next: languageTL.common.nextStr,
- layout: ['prev', 'page', 'next', 'count', 'limit']
- },
- done: function (res, curr, count) {
- element.render();
- // element.progress('rate', '75%');
-
- }
- });
-
- //头工具栏事件 统计信息导出
- tableView.on('toolbar(tabView)', function (obj) {
- switch (obj.event) {
- //自定义头工具栏右侧图标 - 提示
- case 'export':
- if (listData.length == 0) {
- layer.msg(languageTL.deviceVideo.loss[3]);
- return;
- }
-
- let tHeader = [], filterVal = [];
- colsList.map((item, index) => {
- tHeader.push(item.title);
- filterVal.push(item.field);
- });
- // 导出的数据
- const data = PlExportExcel.formatJson(filterVal, listData);
- // 导出表格
- PlExportExcel.exportJsonToExcel({
- header: tHeader,
- data: data,
- filename: "Install",
- autoWidth: true,
- bookType: 'xlsx'
- });
- break;
- };
- });
-
- tableView.on('tool(tabView)',function(obj){
- //获取单行数据
- var data=obj.data;
- //判断状态
- if(obj.event==='collapse'){
- var trObj = layui.$(this).parent('tr'); //当前行
- var accordion = true //开启手风琴,那么在进行折叠操作时,始终只会展现当前展开的表格。
- var content = '
' //内容 - //折叠方法
- collapseTable({
- elem: trObj,
- accordion: accordion,
- content: content,
- success:function(trObjChildren, index){
- //给当前table添加id和lay-filter
- trObjChildren.find('table').attr("id", index);
- trObjChildren.find('table').attr("lay-filter", index);
- //渲染table
- tableView.render({
- elem: "#" + index,
- data: [{region: 1111, required: 2222, installed: 3333, checked: 4444, installNo: 5555, process: "76%"}],
- limit: 3,
- // id:index,//用于表格重载
- cellMinWidth: 80,
- cols: [[
- { field: 'region', title: "网点所在区", align: 'center' },
- { field: 'required', title: "安装总数", align: 'center' },
- { field: 'installed', title: "已安装总数", align: 'center' },
- { field: 'checked', title: "已验收数量", align: 'center' },
- { field: 'installNo', title: "未验收数量", align: 'center' },
- { field: 'process', title: "安装进度", align: 'center', templet: schedule },
- ]],
- done: function (res, curr, count) {
- element.render();
- $('th').hide()
- }
- });
- //重新加载element
- element.init();
- //监听当前table的头部工具栏点击事件
- tableView.on('toolbar('+index+')',function(obj){
- var checkStatus = tableView.checkStatus(obj.config.id);
- var data=checkStatus.data;
- console.log(data);
- switch(obj.event){
- case'selecttime':
-
- }
- })
- }
- })
- }
- });
- });
- }
-
- function collapseTable(options) {
- var trObj = options.elem;
- if (!trObj) return;
- var accordion = options.accordion,
- success = options.success,
- content = options.content || '';
- var tableView = trObj.parents('.layui-table-view'); //当前表格视图
- var id = tableView.attr('lay-id'); //当前表格标识
- var index = trObj.data('index'); //当前行索引
- var leftTr = tableView.find('.layui-table-fixed.layui-table-fixed-l tr[data-index="' + index + '"]'); //左侧当前固定行
- var rightTr = tableView.find('.layui-table-fixed.layui-table-fixed-r tr[data-index="' + index + '"]'); //右侧当前固定行
- var colspan = trObj.find('td').length; //获取合并长度
- var trObjChildren = trObj.next(); //展开行Dom
- var indexChildren = id + '-' + index + '-children'; //展开行索引
- var leftTrChildren = tableView.find('.layui-table-fixed.layui-table-fixed-l tr[data-index="' + indexChildren +
- '"]'); //左侧展开固定行
- var rightTrChildren = tableView.find('.layui-table-fixed.layui-table-fixed-r tr[data-index="' + indexChildren +
- '"]'); //右侧展开固定行
- var lw = leftTr.width() + 15; //左宽
- var rw = rightTr.width() + 15; //右宽
- //不存在就创建展开行
- if (trObjChildren.data('index') != indexChildren) {
- //装载HTML元素
- var tr = '
'"> '">'px;padding-right:' + rw + 'px" class="layui-table-cell">' +- content + '
'; - trObjChildren = trObj.after(tr).next().hide(); //隐藏展开行
- var fixTr = '
'"> '; //固定行 - leftTrChildren = leftTr.after(fixTr).next().hide(); //左固定
- rightTrChildren = rightTr.after(fixTr).next().hide(); //右固定
- }
- //展开|折叠箭头图标
- trObj.find('td[lay-event="collapse"] i.layui-colla-icon').toggleClass("layui-icon-right layui-icon-down");
- //显示|隐藏展开行
- trObjChildren.toggle();
- //开启手风琴折叠和折叠箭头
- if (accordion) {
- trObj.siblings().find('td[lay-event="collapse"] i.layui-colla-icon').removeClass("layui-icon-down").addClass(
- "layui-icon-right");
- trObjChildren.siblings('[data-index$="-children"]').hide(); //展开
- rightTrChildren.siblings('[data-index$="-children"]').hide(); //左固定
- leftTrChildren.siblings('[data-index$="-children"]').hide(); //右固定
- }
- success(trObjChildren, indexChildren); //回调函数
- heightChildren = trObjChildren.height(); //展开高度固定
- rightTrChildren.height(heightChildren + 115).toggle(); //左固定
- leftTrChildren.height(heightChildren + 115).toggle(); //右固定
- }
-
- // 调用接口
- function interfaceParam() {
- let url = IPS + "/progress";
-
- let timerTimeOut, loadingTimeOut;
- layui.use('layer', function () {
- layer = layui.layer;
- loadingTimeOut = layer.load(2, { shade: false });
- timerTimeOut = setTimeout(function () {
- layer.open({
- title: languageTL.common.promptTitle,
- content: languageTL.count.btns2[5],
- btn: [languageTL.confirm]
- });
- layer.close(loadingTimeOut);
- }, 1000 * 10);
- });
- proPostNew(url, "FtpManage.EpibolyTicketProgressReq", "FtpManage.EpibolyTicketProgressResp", { userInfo: httpUser }, function (code, result) {
- clearTimeout(timerTimeOut); // 关闭定时器
- layer.close(loadingTimeOut);
- if (code == 200) {
- console.log(result)
-
- result.epibolyTicketProgressList.map(item => {
- item.installNo = item.installed - item.checked;
- item.process = percentNum(item.installed , item.required);
- })
-
- listData = result.epibolyTicketProgressList;
- tableRender();
-
- } else {
- layer.msg(errLayer(result.code));
- }
- }, 'ftpManage', 'FtpManage.Error');
- }
-
- //小数点后两位百分比
- function percentNum(num,num2) {
- return (Math.round(num / num2 * 10000) / 100.00 + "%");
- }
-
-
- script>
-
- html>

- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <title>设备上下线统计title>
-
- <script type="text/javascript" src="../../../language/language.js">script>
- <script type="text/javascript" src="../../proto/protobuf.min.js">script>
- <script type="text/javascript" src="../../component/js/common.js">script>
- <script type="text/javascript" src="../../component/js/commonNew.js">script>
-
- <script type="text/javascript" src="../../layui/layui.js?r=3.0">script>
- <link type="text/css" rel="stylesheet" href="../../layui/css/layui_base.css"/>
- <script type="text/javascript" src="../../component/js/jquery-2.1.0.min.js">script>
-
-
- <script src="../../component/js/xlsx.js">script>
- <script src="../../component/xlsx/dom.js">script>
- <script src="../../component/xlsx/xlsx.core.min.js">script>
-
- <script type="text/javascript" src="./error.js?r=1.3.3">script>
-
- head>
-
- <body>
- <form class="layui-form">
-
- <div id="none">
- <table class="layui-table" lay-filter="tabView" id="tabView">table>
- div>
-
- form>
- body>
-
- <script>
- var userPerson = getUser();
- var httpUser = { userName: userPerson.name, userGuid: userPerson.sessionId };
-
- let IPS;
- let str = document.domain;
- if (document.domain == 'localhost' || document.domain == "192.168.100.50") {
- IPS = 'https://xxc.chinamdvr.com:7050/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- } else {
- IPS = 'https://www.chinamdvr.com:9201/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- }
-
- let $, element, form, laydate, layer, tableView, util, treeTable;
-
- let listData = [
- {
- "region": "系统管理",
- "required": 1,
- "installed": 2,
- "checked": 3,
- "installNo": 4,
- "process": "60%",
-
- "parentId": -1,
- id: 1,
- "open": true
- },
- {
- "region": "用户管理",
- "required": 11,
- "installed": 22,
- "checked": 33,
- "installNo": 44,
- "process": "61%",
-
- "parentId": 1,
- id: 2,
- "open": true
- },
-
- {
- "region": "查询用户",
- "required": 111,
- "installed": 222,
- "checked": 333,
- "installNo": 444,
- "process": "63%",
-
- "parentId": 2,
- id: 3,
- "open": true
- },
- {
- "region": "添加用户",
- "required": 1111,
- "installed": 2222,
- "checked": 3333,
- "installNo": 4444,
- "process": "64%",
-
- "parentId": 2,
- id: 4,
- "open": true
- },
- {
- "region": "修改用户",
- "required": 11111,
- "installed": 22222,
- "checked": 33333,
- "installNo": 44444,
- "parentId": 2,
- "process": "67%",
-
- "parentId": 2,
- id: 5,
- "open": true
- },
- {
- "region": "删除用户",
- "required": 111111,
- "installed": 222222,
- "checked": 333333,
- "installNo": 444444,
- "process": "69%",
-
- "parentId": 2,
- id: 6,
- "open": true
- }];
-
- layui.config({
- base: './'
- }).use(['element', 'form', 'laydate', 'layer', "util", "treeTable"], function(){
- form = layui.form, laydate = layui.laydate, layer = layui.layer;
- util = layui.util;
- element = layui.element;
- $ = layui.$;
- treeTable = layui.treeTable;
-
- // 渲染
- var inst = treeTable.render({
- elem: '#tabView',
- data: listData,
- tree: {
- iconIndex: 0,
- isPidData: true,
- idName: 'id', // 父ID
- pidName: 'parentId', // 子ID
- // openName: 'open',// 是否默认展开的字段名
- },
- maxHeight: '501px',
- cols: [[
- { field: 'region', title: "网点所在区", align: 'center' },
- { field: 'required', title: "安装总数", align: 'center' },
- { field: 'installed', title: "已安装总数", align: 'center' },
- { field: 'checked', title: "已验收数量", align: 'center' },
- { field: 'installNo', title: "未验收数量", align: 'center' },
- { field: 'process', title: "安装进度", align: 'center', templet: schedule },
- ]],
- toolbar: true,
- defaultToolbar: ['exports'],
- page: true,
- done: function (res, curr, count) {
- element.render();
- // element.progress('rate', '75%');
- }
- });
-
- interfaceParam();
- });
-
- /** 进度条 */
- function schedule(d) {
- //设置页面进度条
- return '' +
- '
- ''
- }
-
- // 调用接口
- function interfaceParam() {
- let url = IPS + "/progress";
-
- let timerTimeOut, loadingTimeOut;
- layui.use('layer', function () {
- layer = layui.layer;
- loadingTimeOut = layer.load(2, { shade: false });
- timerTimeOut = setTimeout(function () {
- layer.open({
- title: languageTL.common.promptTitle,
- content: languageTL.count.btns2[5],
- btn: [languageTL.confirm]
- });
- layer.close(loadingTimeOut);
- }, 1000 * 10);
- });
- proPostNew(url, "FtpManage.EpibolyTicketProgressReq", "FtpManage.EpibolyTicketProgressResp", { userInfo: httpUser }, function (code, result) {
- clearTimeout(timerTimeOut); // 关闭定时器
- layer.close(loadingTimeOut);
- if (code == 200) {
- console.log(result)
-
- result.epibolyTicketProgressList.map(item => {
- item.installNo = item.installed - item.checked;
- item.process = percentNum(item.installed , item.required);
- })
-
- listData = result.epibolyTicketProgressList;
-
- } else {
- layer.msg(errLayer(result.code));
- }
- }, 'ftpManage', 'FtpManage.Error');
- }
-
- //小数点后两位百分比
- function percentNum(num,num2) {
- return (Math.round(num / num2 * 10000) / 100.00 + "%");
- }
-
-
- script>
-
- html>
有一个需要引入的文件:treeTable.js
- /** 树形表格3.x Created by wangfan on 2020-05-12 https://gitee.com/whvse/treetable-lay */
- layui.define(["laytpl","form","util"],function(s){var g=layui.jquery;var d=layui.laytpl;var c=layui.form;var b=layui.util;var o=layui.device();var h="treeTable";var k={};var e={elem:undefined,cols:undefined,url:undefined,method:undefined,where:undefined,contentType:undefined,headers:undefined,parseData:undefined,request:{pidName:"pid"},toolbar:undefined,defaultToolbar:undefined,width:undefined,height:undefined,cellMinWidth:90,done:undefined,data:undefined,title:undefined,skin:undefined,even:undefined,size:undefined,text:{none:"无数据"},reqData:undefined,useAdmin:false,tree:{idName:"id",pidName:"pid",childName:"children",haveChildName:"haveChild",openName:"open",iconIndex:0,arrowType:undefined,onlyIconControl:undefined,getIcon:function(u){var t=u[this.haveChildName];if(t!==undefined){t=t===true||t==="true"}else{if(u[this.childName]){t=u[this.childName].length>0}}if(t){return''}else{return''}}}};var r={field:undefined,title:undefined,width:undefined,minWidth:undefined,type:"normal",fixed:undefined,hide:undefined,unresize:undefined,style:undefined,align:undefined,colspan:undefined,rowspan:undefined,templet:undefined,toolbar:undefined,"class":undefined,singleLine:undefined};var p=function(t){k[t.elem.substring(1)]=this;this.reload(t)};p.prototype.initOptions=function(t){var D=this;function B(J){if(!J.INIT_OK){J=g.extend({INIT_OK:true},r,J)}if(J.type==="space"){if(!J.width){J.width=15}J.minWidth=J.width}else{if(J.type==="numbers"){if(!J.width){J.width=40}J.minWidth=J.width;if(!J.singleLine){J.singleLine=false}if(!J.unresize){J.unresize=true}if(!J.align){J.align="center"}}else{if(J.type==="checkbox"||J.type==="radio"){if(!J.width){J.width=48}J.minWidth=J.width;if(!J.singleLine){J.singleLine=false}if(!J.unresize){J.unresize=true}if(!J.align){J.align="center"}}}}if(J.toolbar){J.type="tool"}return J}if("Array"!==l(t.cols[0])){t.cols=[t.cols]}for(var w=0;w
cols.length;w++){for(var u=0;ucols[w].length;u++){t.cols[w][u].INIT_OK=undefined;t.cols[w][u].key=undefined;t.cols[w][u].colGroup=undefined;t.cols[w][u].HAS_PARENT=undefined;t.cols[w][u].parentKey=undefined;t.cols[w][u].PARENT_COL_INDEX=undefined}}var F=[],G=0;for(var y=0;ycols.length;y++){var C=t.cols[y];for(var x=0;xlength;x++){var A=C[x];if(!A){C.splice(x,1);continue}A=B(A);A.key=y+"-"+x;var I=undefined;if(A.colGroup||A.colspan>1){A.colGroup=true;A.type="group";I=[];G++;var z=0;for(var v=0;vcols[y+1].length;v++){var H=g.extend({INIT_OK:true},r,t.cols[y+1][v]);if(H.HAS_PARENT||(z>1&&z==A.colspan)){t.cols[y+1][v]=H;continue}H.HAS_PARENT=true;H.parentKey=y+"-"+x;H.key=(y+1)+"-"+v;H.PARENT_COL_INDEX=G;H=B(H);I.push(H);z=z+parseInt(H.colspan>1?H.colspan:1);t.cols[y+1][v]=H}}A.CHILD_COLS=I;if(!A.PARENT_COL_INDEX){F.push(A)}t.cols[y][x]=A}}this.options=g.extend(true,{},e,t);this.options.colArrays=F;if(this.options.url){this.options.reqData=function(J,K){if(!D.options.where){D.options.where={}}if(J){D.options.where[D.options.request.pidName]=J[D.options.tree.idName]}(D.options.useAdmin?layui.admin:g).ajax({url:D.options.url,data:D.options.contentType&&D.options.contentType.indexOf("application/json")===0?JSON.stringify(D.options.where):D.options.where,headers:D.options.headers,type:D.options.method,dataType:"json",contentType:D.options.contentType,success:function(L){if(D.options.parseData){L=D.options.parseData(L)}if(L.code==0){K(L.data)}else{K(L.msg||"加载失败")}},error:function(L){K(L.status+" - "+L.statusText)}})}}else{if(this.options.data&&this.options.data.length>0&&this.options.tree.isPidData){this.options.data=a.pidToChildren(this.options.data,this.options.tree.idName,this.options.tree.pidName,this.options.tree.childName)}}if("default"===this.options.toolbar){this.options.toolbar=["",' ',' '," ",' ',' '," ",' ',' '," ",""].join("")}if(this.options.defaultToolbar===undefined){this.options.defaultToolbar=["filter","exports","print"]}if(typeof this.options.tree.getIcon==="string"){var E=this.options.tree.getIcon;this.options.tree.getIcon=function(K){if(E!=="ew-tree-icon-style2"){return E}var J=K[this.haveChildName];if(J!==undefined){J=J===true||J==="true"}else{if(K[this.childName]){J=K[this.childName].length>0}}if(J){return''}else{return''}}}};p.prototype.init=function(){var E=this.options;var u=g(E.elem);var B=E.elem.substring(1);u.removeAttr("lay-filter");if(u.next(".ew-tree-table").length===0){u.css("display","none");u.after([''" style="',E.style||"",'">',' ',' ','
'," ",' ','
',' ',' '," ",' ',E.text.none||"",""," ",""].join(""))}var A=this.getComponents();if(E.skin){A.$table.attr("lay-skin",E.skin)}if(E.size){A.$table.attr("lay-size",E.size)}if(E.even){A.$table.attr("lay-even",E.even)}A.$toolbar.empty();if(E.toolbar===false||E.toolbar===undefined){A.$toolbar.hide()}else{A.$toolbar.show();if(typeof E.toolbar==="string"){d(g(E.toolbar).html()).render({},function(F){A.$toolbar.html(''+F+"")})}var C=[''];for(var y=0;ydefaultToolbar.length;y++){var w;if("filter"===E.defaultToolbar[y]){w={title:"筛选",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"}}else{if("exports"===E.defaultToolbar[y]){w={title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"}}else{if("print"===E.defaultToolbar[y]){w={title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}}else{w=E.defaultToolbar[y]}}}if(w){C.push(');C.push(' title="'+w.title+'"');C.push(' lay-event="'+w.layEvent+'">');C.push('icon+'">')}}A.$toolbar.append(C.join("")+" ")}if(E.width){A.$view.css("width",E.width);A.$tHeadGroup.css("width",E.width);A.$tBodyGroup.css("width",E.width)}var v=this.resize(true);var D=""+this.renderBodyTh()+"";A.$tBodyGroup.children("style").remove();if(E.height){A.$tHead.html(v+D);A.$tBody.html(v+"");if(E.height.indexOf("full-")===0){var z=parseFloat(E.height.substring(5))+A.$toolbar.outerHeight()+A.$tHeadGroup.outerHeight()+1;A.$tBodyGroup.append(['"].join(""));A.$tBodyGroup.data("full",z);A.$tBodyGroup.css("height","")}else{A.$tBodyGroup.css("height",E.height);A.$tBodyGroup.data("full","")}A.$tHeadGroup.show()}else{A.$tHeadGroup.hide();var x={lg:50,sm:30,md:38};A.$tBodyGroup.append(['"].join(""));A.$tBody.html(v+D+"")}c.render("checkbox",B);function t(H){var F=H.data("parent"),G;if(!F){return}var I=A.$table.children("thead").children("tr").children('[data-key="'+F+'"]');var J=I.attr("colspan")-1;I.attr("colspan",J);if(J===0){I.addClass("layui-hide")}t(I)}A.$table.children("thead").children("tr").children("th.layui-hide").each(function(){t(g(this))});if(E.reqData){this.options.data=undefined;this.renderBodyAsync()}else{if(E.data&&E.data.length>0){this.renderBodyData(E.data)}else{A.$loading.hide();A.$empty.show()}}};p.prototype.bindEvents=function(){var v=this;var t=this.options;var u=this.getComponents();var w=u.$table.children("tbody");var x=function(y){var z=g(this);if(!z.is("tr")){var C=z.parent("tr");if(C.length>0){z=C}else{z=z.parentsUntil("tr").last().parent()}}var A=v.getDataByTr(z);var B={tr:z,data:A,del:function(){var F=z.data("index");var D=parseInt(z.data("indent"));z.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=D){return false}g(this).remove()});var G=(typeof F==="number"?1:F.split("-").length);z.nextAll("tr").each(function(){var H=g(this);if(parseInt(H.data("indent"))return false}var I=H.data("index").toString().split("-");I[G-1]=parseInt(I[G-1])-1;H.data("index",I.join("-"))});var E=z.prevAll("tr");v.del(undefined,F);z.remove();v.renderNumberCol();E.each(function(){var H=parseInt(g(this).data("indent"));if(H>=D){return true}v.checkParentCB(g(this));D=H});v.checkChooseAllCB();if(t.data.length===0){u.$empty.show()}f(u.$view)},update:function(E){A=g.extend(true,A,E);var D=parseInt(z.data("indent"));v.renderBodyTr(A,D,undefined,z);c.render(null,u.filter);v.renderNumberCol();z.prevAll("tr").each(function(){var F=parseInt(g(this).data("indent"));if(F>=D){return true}v.checkParentCB(g(this));D=F});v.checkChooseAllCB()}};return g.extend(B,y)};w.off("click.fold").on("click.fold",".ew-tree-pack",function(C){layui.stope(C);var A=g(this).parentsUntil("tr").last().parent();if(A.hasClass("ew-tree-table-loading")){return}var y=A.data("have-child");if(y!==true&&y!=="true"){return}var z=A.hasClass("ew-tree-table-open");var B=v.getDataByTr(A);if(!z&&!B[t.tree.childName]){v.renderBodyAsync(B,A)}else{B[t.tree.openName]=i(A)}});w.off("click.tool").on("click.tool","*[lay-event]",function(z){layui.stope(z);var y=g(this);layui.event.call(this,h,"tool("+u.filter+")",x.call(this,{event:y.attr("lay-event")}))});c.on("radio("+u.radioFilter+")",function(y){var z=v.getDataByTr(g(y.elem).parentsUntil("tr").last().parent());v.removeAllChecked();z.LAY_CHECKED=true;z.LAY_INDETERMINATE=false;layui.event.call(this,h,"checkbox("+u.filter+")",{checked:true,data:z,type:"one"})});c.on("checkbox("+u.checkboxFilter+")",function(C){var B=C.elem.checked;var E=g(C.elem);var z=E.next(".layui-form-checkbox");if(!B&&E.hasClass("ew-form-indeterminate")){B=true;E.prop("checked",B);z.addClass("layui-form-checked");E.removeClass("ew-form-indeterminate")}var A=E.parentsUntil("tr").last().parent();var D=v.getDataByTr(A);D.LAY_CHECKED=B;D.LAY_INDETERMINATE=false;if(D[t.tree.childName]&&D[t.tree.childName].length>0){v.checkSubCB(A,B)}var y=parseInt(A.data("indent"));A.prevAll("tr").each(function(){var F=parseInt(g(this).data("indent"));if(FcheckParentCB(g(this));y=F}});v.checkChooseAllCB();layui.event.call(this,h,"checkbox("+u.filter+")",{checked:B,data:D,type:"more"})});c.on("checkbox("+u.chooseAllFilter+")",function(A){var z=A.elem.checked;var B=g(A.elem);var y=B.next(".layui-form-checkbox");if(!t.data||t.data.length===0){B.prop("checked",false);y.removeClass("layui-form-checked");B.removeClass("ew-form-indeterminate");return}if(!z&&B.hasClass("ew-form-indeterminate")){z=true;B.prop("checked",z);y.addClass("layui-form-checked");B.removeClass("ew-form-indeterminate")}layui.event.call(this,h,"checkbox("+u.filter+")",{checked:z,type:"all"});v.checkSubCB(u.$tBody.children("tbody"),z)});w.off("click.row").on("click.row","tr",function(){layui.event.call(this,h,"row("+u.filter+")",x.call(this,{}))});w.off("dblclick.rowDouble").on("dblclick.rowDouble","tr",function(){layui.event.call(this,h,"rowDouble("+u.filter+")",x.call(this,{}))});w.off("click.cell").on("click.cell","td",function(C){var y=g(this);var E=y.data("type");if(E==="checkbox"||E==="radio"){return layui.stope(C)}var H=y.data("edit");var G=y.data("field");if(H){layui.stope(C);if(w.find(".ew-tree-table-edit").length>0){return}var B=y.data("index");var z=y.find(".ew-tree-table-indent").length;var D=v.getDataByTr(y.parent());if("text"===H||"number"===H){var F=g(''" class="layui-input ew-tree-table-edit"/>');F[0].value=D[G];y.append(F);F.focus();F.blur(function(){var K=g(this).val();if(K==D[G]){return g(this).remove()}var I=layui.event.call(this,h,"edit("+u.filter+")",x.call(this,{value:K,field:G}));if(I===false){g(this).addClass("layui-form-danger");g(this).focus()}else{D[G]=K;var J=y.data("key").split("-");v.renderBodyTd(D,z,B,y,t.cols[J[0]][J[1]])}})}else{console.error("不支持的单元格编辑类型:"+H)}}else{var A=layui.event.call(this,h,"cell("+u.filter+")",x.call(this,{td:y,field:G}));if(A===false){layui.stope(C)}}});w.off("dblclick.cellDouble").on("dblclick.cellDouble","td",function(C){var D=g(this);var z=D.data("type");if(z==="checkbox"||z==="radio"){return layui.stope(C)}var A=D.data("edit");var B=D.data("field");if(A){return layui.stope(C)}var y=layui.event.call(this,h,"cellDouble("+u.filter+")",x.call(this,{td:D,field:B}));if(y===false){layui.stope(C)}});u.$toolbar.off("click.toolbar").on("click.toolbar","*[lay-event]",function(A){layui.stope(A);var z=g(this);var y=z.attr("lay-event");if("LAYTABLE_COLS"===y){v.toggleCol()}else{if("LAYTABLE_EXPORT"===y){v.exportData("show")}else{if("LAYTABLE_PRINT"===y){v.printTable()}else{layui.event.call(this,h,"toolbar("+u.filter+")",{event:y,elem:z})}}}});u.$tBodyGroup.on("scroll",function(){var y=g(this);u.$tHeadGroup.scrollLeft(y.scrollLeft())});u.$toolbar.off("click.export").on("click.export",".layui-table-tool-panel>[data-type]",function(){var y=g(this).data("type");if("csv"===y||"xls"===y){v.exportData(y)}});u.$toolbar.off("click.panel").on("click.panel",".layui-table-tool-panel",function(y){layui.stope(y)});c.on("checkbox("+u.colsToggleFilter+")",function(y){v.toggleCol(y.elem.checked,undefined,y.value)})};p.prototype.getComponents=function(){var v=g(this.options.elem).next(".ew-tree-table");var t=v.attr("lay-filter");var w=v.children(".ew-tree-table-head");var u=v.children(".ew-tree-table-box");return{$view:v,filter:t,$tHeadGroup:w,$tBodyGroup:u,$tHead:w.children(".layui-table"),$tBody:u.children(".layui-table"),$table:v.find(".layui-table"),$toolbar:v.children(".ew-tree-table-tool"),$empty:u.children(".ew-tree-table-empty"),$loading:u.children(".ew-tree-table-loading"),checkboxFilter:"ew_tb_checkbox_"+t,radioFilter:"ew_tb_radio_"+t,chooseAllFilter:"ew_tb_choose_all_"+t,colsToggleFilter:"ew_tb_toggle_cols"+t}};p.prototype.eachCols=function(w,v){if(!v){v=this.options.colArrays}for(var t=0;tlength;t++){var u=v[t];w&&w(t,u);if(u.CHILD_COLS){this.eachCols(w,u.CHILD_COLS)}}};p.prototype.eachData=function(w,v){if(!v){v=this.options.data}for(var t=0;tlength;t++){var u=v[t];w&&w(t,u);if(u[this.options.tree.childName]){this.eachData(w,u[this.options.tree.childName])}}};p.prototype.renderBodyAsync=function(x,w){var v=this;var t=this.options;var u=this.getComponents();if(w){w.addClass("ew-tree-table-loading");w.find(".ew-tree-pack").children(".ew-tree-table-arrow").addClass("layui-anim layui-anim-rotate layui-anim-loop")}else{u.$empty.hide();if(t.data&&t.data.length>0){u.$loading.addClass("ew-loading-float")}u.$loading.show()}t.reqData(x,function(y){if(typeof y!=="string"&&y&&y.length>0&&t.tree.isPidData){y=a.pidToChildren(y,t.tree.idName,t.tree.pidName,t.tree.childName)}v.renderBodyData(y,x,w)})};p.prototype.renderBodyData=function(w,A,x){var u;if(typeof w==="string"){u=w;w=[]}var z=this;var C=this.options;var y=this.getComponents();if(A===undefined){C.data=w}else{A[C.tree.childName]=w}var v;if(x){v=parseInt(x.data("indent"))+1;A[C.tree.openName]=true}var t=this.renderBody(w,v,A);if(x){x.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=(v-1)){return false}g(this).remove()});x.after(t).addClass("ew-tree-table-open")}else{y.$tBody.children("tbody").html(t)}c.render(null,y.filter);this.renderNumberCol();if(x){this.checkParentCB(x);x.prevAll("tr").each(function(){var D=parseInt(g(this).data("indent"));if(D<(v-1)){z.checkParentCB(g(this));v=D+1}});x.removeClass("ew-tree-table-loading");var B=x.find(".ew-tree-pack").children(".ew-tree-table-arrow");B.removeClass("layui-anim layui-anim-rotate layui-anim-loop");if(u){x.removeClass("ew-tree-table-open")}else{if(w&&w.length===0){A[C.tree.haveChildName]=false;x.data("have-child",false);B.addClass("ew-tree-table-arrow-hide");B.next(".ew-tree-icon").after(C.tree.getIcon(A)).remove()}}}else{y.$loading.hide();y.$loading.removeClass("ew-loading-float");if(w&&w.length>0){y.$empty.hide()}else{y.$empty.show();if(u){y.$empty.text(u)}else{y.$empty.html(C.text.none)}}}this.checkChooseAllCB();f(y.$view);C.done&&C.done(w)};p.prototype.renderBody=function(z,t,y){var u=this.options;if(!t){t=0}var x="";if(!z||z.length===0){return x}var w=y?!y[u.tree.openName]:undefined;for(var v=0;vlength;v++){var A=z[v];A.LAY_INDEX=(y?y.LAY_INDEX+"-":"")+v;x+=this.renderBodyTr(A,t,w);x+=this.renderBody(A[u.tree.childName],t+1,A)}return x};p.prototype.renderBodyTr=function(B,u,x,w){var z=this;var C=this.options;if(!u){u=0}var A=B[C.tree.haveChildName];if(A===undefined){A=B[C.tree.childName]&&B[C.tree.childName].length>0}if(w){w.data("have-child",A?"true":"false");w.data("indent",u);w.removeClass("ew-tree-table-loading")}var v=";var t="";if(A&&B[C.tree.openName]){t+="ew-tree-table-open"}if(x){t+="ew-tree-tb-hide"}v+=(' class="'+t+'"');if(A){v+=(' data-have-child="'+A+'"')}v+=(' data-index="'+B.LAY_INDEX+'"');v+=(' data-indent="'+u+'">');var y=0;this.eachCols(function(E,D){if(D.colGroup){return}v+=z.renderBodyTd(B,u,y,w?w.children("td").eq(y):undefined,D);y++});v+=" ";return v};p.prototype.renderBodyTd=function(C,v,A,t,u){if(u.colGroup){return""}var F=this.options;var y=this.getComponents();if(!v){v=0}var B="",E="",D="";if(u.type==="numbers"){B=''}else{if(u.type==="checkbox"){B=[',C.LAY_CHECKED?' checked="checked"':"",' lay-filter="',y.checkboxFilter,'"',' lay-skin="primary" class="ew-tree-table-checkbox',C.LAY_INDETERMINATE?" ew-form-indeterminate":"",'" />'].join("")}else{if(u.type==="radio"){B=[',C.LAY_CHECKED?' checked="checked"':"",' lay-filter="',y.radioFilter,'"',' name="',y.radioFilter,'"',' class="ew-tree-table-radio" />'].join("")}else{if(u.templet){if(typeof u.templet==="function"){B=u.templet(C)}else{if(typeof u.templet==="string"){d(g(u.templet).html()).render(C,function(G){B=G})}}}else{if(u.toolbar){if(typeof u.toolbar==="function"){B=u.toolbar(C)}else{if(typeof u.toolbar==="string"){d(g(u.toolbar).html()).render(C,function(G){B=G})}}}else{if(u.field&&C[u.field]!==undefined&&C[u.field]!==null){B=b.escape(C[u.field]===0?"0":C[u.field])}}}}}}if(A===F.tree.iconIndex){for(var w=0;w'' }D+='';var z=C[F.tree.haveChildName];if(z===undefined){z=C[F.tree.childName]&&C[F.tree.childName].length>0}D+=('"":" ew-tree-table-arrow-hide"));D+=(" "+(F.tree.arrowType||"")+'">');D+=F.tree.getIcon(C);B=""+B+"";if(F.tree.onlyIconControl){B=D+""+B}else{B=D+B+""}}E=['singleLine===undefined||u.singleLine?" single-line":"",'"',u.align?' align="'+u.align+'"':"",">",' ',B,"",' ',' ',""].join("");if(t){t.html(E)}var x=";if(u.field){x+=(' data-field="'+u.field+'"')}if(u.edit){x+=(' data-edit="'+u.edit+'"')}if(u.type){x+=(' data-type="'+u.type+'"')}if(u.key){x+=(' data-key="'+u.key+'"')}if(u.style){x+=(' style="'+u.style+'"')}if(u["class"]){x+=(' class="'+u["class"]+(u.hide?" layui-hide":"")+'"')}else{if(u.hide){x+=(' class="layui-hide"')}}x+=(">"+E+" ");return x};p.prototype.renderBodyTh=function(){var t=this.options;var v=this.getComponents();var u=[];g.each(t.cols,function(x,w){u.push("");g.each(w,function(A,z){u.push(");if(z.colspan){u.push(' colspan="'+z.colspan+'"')}if(z.rowspan){u.push(' rowspan="'+z.rowspan+'"')}if(z.type){u.push(' data-type="'+z.type+'"')}if(z.key){u.push(' data-key="'+z.key+'"')}if(z.parentKey){u.push(' data-parent="'+z.parentKey+'"')}if(z.hide){u.push(' class="layui-hide"')}u.push(">");u.push('singleLine===undefined||z.singleLine?" single-line":"")+'"');if(z.thAlign||z.align){u.push(' align="'+(z.thAlign||z.align)+'"')}u.push(">");u.push('');var y='chooseAllFilter+'" lay-skin="primary" class="ew-tree-table-checkbox"/>';if(z.type==="checkbox"){u.push(y)}else{u.push(z.title||"")}u.push('');u.push('');if(!z.colGroup&&!z.unresize){u.push('')}u.push(" ")});u.push(" ")});return u.join("")};p.prototype.resize=function(z){var t=this.options;var x=this.getComponents();var v=1,u=1,A=true,w=0;this.eachCols(function(B,C){if(C.colGroup||C.hide){return}if(C.width){u+=(C.width+1);if(C.minWidth){if(C.widthminWidth){C.width=C.minWidth}}else{if(C.widthcellMinWidth){C.width=t.cellMinWidth}}}else{A=false}if(C.width){v+=(C.width+1)}else{if(C.minWidth){v+=(C.minWidth+1);w+=C.minWidth}else{v+=(t.cellMinWidth+1);w+=t.cellMinWidth}}});if(v){x.$tHead.css("min-width",v);x.$tBody.css("min-width",v)}else{x.$tHead.css("min-width","auto");x.$tBody.css("min-width","auto")}if(A){x.$tHead.css("width",u);x.$tBody.css("width",u)}else{x.$tHead.css("width","100%");x.$tBody.css("width","100%")}var y=[];this.eachCols(function(B,C){if(C.colGroup||C.hide){return}y.push(" );if(C.width){y.push(' width="'+C.width+'"')}else{if(C.minWidth){y.push(' width="'+(C.minWidth/w*100).toFixed(2)+'%"')}else{y.push(' width="'+(t.cellMinWidth/w*100).toFixed(2)+'%"')}}if(C.type){y.push(' data-type="'+C.type+'"')}if(C.key){y.push(' data-key="'+C.key+'"')}y.push("/>")});y=y.join("");if(z){return"" +y+""}x.$table.children("colgroup").html(y)};p.prototype.getDataByTr=function(v){var w,t;if(typeof v!=="string"&&typeof v!=="number"){if(v){t=v.data("index")}}else{t=v}if(t===undefined){return}if(typeof t==="number"){t=[t]}else{t=t.split("-")}for(var u=0;ulength ;u++){if(w){w=w[this.options.tree.childName][t[u]]}else{w=this.options.data[t[u]]}}return w};p.prototype.checkSubCB=function(y,x){var w=this;var v=this.getComponents();var t=-1,u;if(y.is("tbody")){u=y.children("tr")}else{t=parseInt(y.data("indent"));u=y.nextAll("tr")}u.each(function(){if(parseInt(g(this).data("indent"))<=t){return false}var A=g(this).children("td").find('input[lay-filter="'+v.checkboxFilter+'"]');A.prop("checked",x);A.removeClass("ew-form-indeterminate");if(x){A.next(".layui-form-checkbox").addClass("layui-form-checked")}else{A.next(".layui-form-checkbox").removeClass("layui-form-checked")}var z=w.getDataByTr(g(this));z.LAY_CHECKED=x;z.LAY_INDETERMINATE=false})};p.prototype.checkParentCB=function(x){var u=this.options;var w=this.getComponents();var z=this.getDataByTr(x);var y=0,v=0;if(z[u.tree.childName]){function t(C){for(var B=0;Blength;B++){if(C[B].LAY_CHECKED){y++}else{v++}if(C[B][u.tree.childName]){t(C[B][u.tree.childName])}}}t(z[u.tree.childName])}var A=x.children("td").find('input[lay-filter="'+w.checkboxFilter+'"]');if(y>0&&v===0){A.prop("checked",true);A.removeClass("ew-form-indeterminate");A.next(".layui-form-checkbox").addClass("layui-form-checked");z.LAY_CHECKED=true;z.LAY_INDETERMINATE=false}else{if(y===0&&v>0){A.prop("checked",false);A.removeClass("ew-form-indeterminate");A.next(".layui-form-checkbox").removeClass("layui-form-checked");z.LAY_CHECKED=false;z.LAY_INDETERMINATE=false}else{if(y>0&&v>0){A.prop("checked",true);A.data("indeterminate","true");A.addClass("ew-form-indeterminate");A.next(".layui-form-checkbox").addClass("layui-form-checked");z.LAY_CHECKED=true;z.LAY_INDETERMINATE=true}}}};p.prototype.checkChooseAllCB=function(){var u=this.options;var w=this.getComponents();var x=0,v=0;function t(A){for(var z=0;zlength;z++){if(A[z].LAY_CHECKED){x++}else{v++}if(A[z][u.tree.childName]){t(A[z][u.tree.childName])}}}t(u.data);var y=w.$view.find('input[lay-filter="'+w.chooseAllFilter+'"]');if(x>0&&v===0){y.prop("checked",true);y.removeClass("ew-form-indeterminate");y.next(".layui-form-checkbox").addClass("layui-form-checked")}else{if((x===0&&v>0)||(x===0&&v===0)){y.prop("checked",false);y.removeClass("ew-form-indeterminate");y.next(".layui-form-checkbox").removeClass("layui-form-checked")}else{if(x>0&&v>0){y.prop("checked",true);y.addClass("ew-form-indeterminate");y.next(".layui-form-checkbox").addClass("layui-form-checked")}}}};p.prototype.renderNumberCol=function(){this.getComponents().$tBody.children("tbody").children("tr").each(function(t){g(this).children("td").find(".ew-tree-table-numbers").text(t+1)})};p.prototype.getIndexById=function(v){var t=this.options;function u(x,y){for(var w=0;wlength;w++){if(x[w][t.tree.idName]==v){return y!==undefined?y+"-"+w:w}if(x[w][t.tree.childName]){return u(x[w][t.tree.childName],y!==undefined?y+"-"+w:w)}}}return u(t.data)};p.prototype.expand=function(x,u){var w=this.getComponents();var v=w.$table.children("tbody").children('tr[data-index="'+this.getIndexById(x)+'"]');if(!v.hasClass("ew-tree-table-open")){v.children("td").find(".ew-tree-pack").trigger("click")}if(u===false){return}var t=parseInt(v.data("indent"));v.prevAll("tr").each(function(){var y=parseInt(g(this).data("indent"));if(yif(!g(this).hasClass("ew-tree-table-open")){g(this).children("td").find(".ew-tree-pack").trigger("click")}t=y}})};p.prototype.fold=function(v){var u=this.getComponents();var t=u.$table.children("tbody").children('tr[data-index="'+this.getIndexById(v)+'"]');if(t.hasClass("ew-tree-table-open")){t.children("td").find(".ew-tree-pack").trigger("click")}};p.prototype.expandAll=function(){this.getComponents().$table.children("tbody").children("tr").each(function(){if(!g(this).hasClass("ew-tree-table-open")){g(this).children("td").find(".ew-tree-pack").trigger("click")}})};p.prototype.foldAll=function(){this.getComponents().$table.children("tbody").children("tr").each(function(){if(g(this).hasClass("ew-tree-table-open")){g(this).children("td").find(".ew-tree-pack").trigger("click")}})};p.prototype.getData=function(){return this.options.data};p.prototype.reload=function(t){this.initOptions(this.options?g.extend(true,this.options,t):t);this.init();this.bindEvents()};p.prototype.checkStatus=function(t){if(t===undefined){t=true}var u=[];this.eachData(function(v,w){if((t||!w.LAY_INDETERMINATE)&&w.LAY_CHECKED){u.push(g.extend({isIndeterminate:w.LAY_INDETERMINATE},w))}});return u};p.prototype.setChecked=function(u){var w=this;var v=this.getComponents();var t=v.$table.find('input[lay-filter="'+v.radioFilter+'"]');if(t.length>0){t.each(function(){var x=w.getDataByTr(g(this).parentsUntil("tr").parent());if(x&&u[u.length-1]==x[w.options.tree.idName]){g(this).next(".layui-form-radio").trigger("click");return false}})}else{v.$table.find('input[lay-filter="'+v.checkboxFilter+'"]').each(function(){var C=g(this);var y=C.next(".layui-form-checkbox");var z=C.prop("checked");var B=C.hasClass("ew-form-indeterminate");var A=w.getDataByTr(C.parentsUntil("tr").parent());for(var x=0;xlength;x++){if(A&&u[x]==A[w.options.tree.idName]){if(A[w.options.tree.childName]&&A[w.options.tree.childName].length>0){continue}if(!z||B){y.trigger("click")}}}})}};p.prototype.removeAllChecked=function(){this.checkSubCB(this.getComponents().$table.children("tbody"),false)};p.prototype.exportData=function(w){var y=this.getComponents();if("show"===w){y.$toolbar.find(".layui-table-tool-panel").remove();y.$toolbar.find('[lay-event="LAYTABLE_EXPORT"]').append([''
,' - 导出到 Csv 文件
',' - 导出到 Excel 文件
',""].join(""))}else{if(o.ie){return layer.msg("不支持ie导出")}if(!w){w="xls"}var u=[],t=[];this.eachCols(function(A,B){if(B.type!=="normal"||B.hide){return}u.push(B.title||"")});y.$tBody.children("tbody").children("tr").each(function(){var A=[];g(this).children("td").each(function(){var B=g(this);if(B.data("type")!=="normal"||B.hasClass("layui-hide")){return true}A.push(B.text().trim().replace(/,/g,","))});t.push(A.join(","))});var v=document.createElement("a");var x=encodeURIComponent(u.join(",")+"\r\n"+t.join("\r\n"));var z=({csv:"text/csv",xls:"application/vnd.ms-excel"})[w];v.href="data:"+z+";charset=utf-8,\ufeff"+x;v.download=(this.options.title||"table")+"."+w;document.body.appendChild(v);v.click();document.body.removeChild(v)}};p.prototype.printTable=function(){var w=this.getComponents();var z=w.$tHead.children("thead").html();if(!z){z=w.$tBody.children("thead").html()}var x=w.$tBody.children("tbody").html();var v=w.$tBody.children("colgroup").html();var u=g([''," " ,v,""," ",z,""," ",x,"","
"].join(""));u.find('col[data-type="checkbox"],col[data-type="radio"],col[data-type="tool"]').remove();u.find('td[data-type="checkbox"],td[data-type="radio"],td[data-type="tool"],.layui-hide').remove();function A(F){var C=F.data("parent"),D;if(!C){return}var E=u.children("thead").children("tr").children('[data-key="'+C+'"]');var G=parseInt(E.attr("colspan"))-1;E.attr("colspan",G);if(G===0){E.remove()}A(E)}u.find('th[data-type="checkbox"],th[data-type="radio"],th[data-type="tool"]').each(function(){A(g(this))}).remove();var t=[""].join("");var y=window.open("","_blank");y.focus();var B=y.document;B.open();B.write(u[0].outerHTML+t);B.close();y.print();y.close()};p.prototype.toggleCol=function(A,z,B){var w=this.getComponents();if(A===undefined){w.$toolbar.find(".layui-table-tool-panel").remove();var x=[''
];this.eachCols(function(D,E){if(E.type!=="normal"){return}x.push('- );x.push(' lay-filter="'+w.colsToggleFilter+'"');x.push(' value="'+E.key+'" title="'+b.escape(E.title||"")+'"');x.push((E.hide?"":" checked")+">
")});w.$toolbar.find('[lay-event="LAYTABLE_COLS"]').append(x.join("")+"");c.render("checkbox",w.filter)}else{if(B){var u=w.$table.children("tbody").children("tr").children('[data-key="'+B+'"]');var C=w.$table.children("thead").children("tr").children('[data-key="'+B+'"]');if(A){u.removeClass("layui-hide");C.removeClass("layui-hide")}else{u.addClass("layui-hide");C.addClass("layui-hide")}var y=B.split("-");var v=this.options.cols[y[0]][y[1]];v.hide=!A;function t(G){var D=G.data("parent"),E;if(!D){return}var F=w.$table.children("thead").children("tr").children('[data-key="'+D+'"]');var H=F.attr("colspan");A?H++:H--;F.attr("colspan",H);if(H===0){F.addClass("layui-hide")}else{F.removeClass("layui-hide")}t(F)}t(C);this.eachCols(function(D,E){if(E.key===B){E.hide=v.hide}});this.resize()}}};p.prototype.filterData=function(y){var A=this.getComponents();A.$loading.show();if(this.options.data.length>0){A.$loading.addClass("ew-loading-float")}var x=A.$table.children("tbody").children("tr");var u=[];if(typeof y==="string"){x.each(function(){var B=g(this).data("index");g(this).children("td").each(function(){if(g(this).text().indexOf(y)!==-1){u.push(B);return false}})})}else{for(var w=0;wlength;w++){u.push(this.getIndexById(y[w]))}}x.addClass("ew-tree-table-filter-hide");for(var v=0;vlength;v++){var z=x.filter('[data-index="'+u[v]+'"]');z.removeClass("ew-tree-table-filter-hide");var t=parseInt(z.data("indent"));z.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=t){return false}g(this).removeClass("ew-tree-table-filter-hide")});if(z.hasClass("ew-tree-table-open")){i(z)}z.prevAll("tr").each(function(){var B=parseInt(g(this).data("indent"));if(Bg(this).removeClass("ew-tree-table-filter-hide");if(!g(this).hasClass("ew-tree-table-open")){i(g(this))}t=B}})}A.$loading.hide();A.$loading.removeClass("ew-loading-float");if(u.length===0){A.$empty.show()}f(A.$view)};p.prototype.clearFilter=function(){var t=this.getComponents();t.$table.children("tbody").children("tr").removeClass("ew-tree-table-filter-hide");if(this.options.data.length>0){t.$empty.hide()}f(t.$view)};p.prototype.refresh=function(x,v){if(l(x)==="Array"){v=x;x=undefined}var u=this.getComponents();var w,t;if(x!==undefined){t=u.$table.children("tbody").children('tr[data-index="'+this.getIndexById(x)+'"]');w=this.getDataByTr(t)}if(v){if(this.data.length>0){u.$loading.addClass("ew-loading-float")}u.$loading.show();if(v.length>0&&this.options.tree.isPidData){this.renderBodyData(a.pidToChildren(v,this.options.tree.idName,this.options.tree.pidName,this.options.tree.childName),w,t)}else{this.renderBodyData(v,w,t)}}else{this.renderBodyAsync(w,t)}};p.prototype.del=function(x,u){if(u===undefined){u=this.getIndexById(x)}var t=(typeof u==="number"?[u]:u.split("-"));var w=this.options.data;if(t.length>1){for(var v=0;vlength-1;v++){w=w[parseInt(t[v])][this.options.tree.childName]}}w.splice(t[t.length-1],1)};p.prototype.update=function(u,t){g.extend(true,this.getDataByTr(this.getIndexById(u)),t)};function i(v){var t=parseInt(v.data("indent"));var u=v.hasClass("ew-tree-table-open");if(u){v.removeClass("ew-tree-table-open");v.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=t){return false}g(this).addClass("ew-tree-tb-hide")})}else{v.addClass("ew-tree-table-open");var w;v.nextAll("tr").each(function(){var x=parseInt(g(this).data("indent"));if(x<=t){return false}if(w!==undefined&&x>w){return true}g(this).removeClass("ew-tree-tb-hide");if(!g(this).hasClass("ew-tree-table-open")){w=parseInt(g(this).data("indent"))}else{w=undefined}})}f(v.parentsUntil(".ew-tree-table").last().parent());return u}function f(w){var t=w.children(".ew-tree-table-head");var u=w.children(".ew-tree-table-box");var v=u.width()-u.prop("clientWidth");t.css("border-right",(v>0?v:0)+"px solid #f2f2f2")}g(window).resize(function(){g(".ew-tree-table").each(function(){f(g(this));var u=g(this).children(".ew-tree-table-box");var t=u.data("full");if(t&&o.ie&&o.ie<10){u.css("height",m()-t)}})});g(document).on("mouseenter",".ew-tree-table-cell.single-line",function(){var t=g(this).children(".ew-tree-table-cell-content");if(t.prop("scrollWidth")>t.outerWidth()){g(this).children(".layui-table-grid-down").show()}}).on("mouseleave",".ew-tree-table-cell.single-line",function(){g(this).children(".layui-table-grid-down").hide()});g(document).on("click",".ew-tree-table-cell>.layui-table-grid-down",function(w){w.stopPropagation();j();var u=g(this).parent();u.addClass("ew-tree-tips-open");u.children(".layui-table-grid-down").hide();var t=u.parent().outerWidth()+4;if(u.outerWidth()children(".ew-tree-table-cell-content").css({"width":t,"max-width":t})}var v=u.parents().filter(".ew-tree-table-box");if(v.length===0){v=u.parents().filter(".ew-tree-table-head")}if(v.length===0){return}if((u.outerWidth()+u.offset().left)+20>v.offset().left+v.outerWidth()){u.addClass("ew-show-left")}if((u.outerHeight()+u.offset().top+10)>v.offset().top+v.outerHeight()){u.addClass("ew-show-bottom")}});g(document).on("click",".ew-tree-table-cell>.ew-tree-tips-c",function(){j()});g(document).on("click",function(){j();g(".ew-tree-table .layui-table-tool-panel").remove()});g(document).on("click",".ew-tree-table-cell.ew-tree-tips-open",function(t){t.stopPropagation()});function j(){g(".ew-tree-table-cell").removeClass("ew-tree-tips-open ew-show-left ew-show-bottom");g(".ew-tree-table-cell>.ew-tree-table-cell-content").css({"width":"","max-width":""})}g(document).on("mousedown",".ew-tb-resize",function(x){layui.stope(x);var v=g(this);v.attr("move","true");var u=v.parent().data("key");v.data("x",x.clientX);var t=v.parent().parent().parent().parent().children("colgroup").children('col[data-key="'+u+'"]').attr("width");if(!t||t.toString().indexOf("%")!==-1){t=v.parent().outerWidth()}v.data("width",t);g("body").addClass("ew-tree-table-resizing")}).on("mousemove",function(B){var y=g('.ew-tree-table .ew-tb-resize[move="true"]');if(y.length===0){return}layui.stope(B);var t=y.data("x");var v=y.data("width");var u=parseFloat(v)+B.clientX-parseFloat(t);if(u<=0){u=1}var z=k[y.parentsUntil(".ew-tree-table").last().parent().attr("lay-filter")];var A=y.parent().data("key");var C=A.split("-");z.options.cols[C[0]][C[1]].width=u;z.eachCols(function(w,x){if(x.key===A){x.width=u}});z.resize()}).on("mouseup",function(t){g('.ew-tree-table .ew-tb-resize[move="true"]').attr("move","false");g("body").removeClass("ew-tree-table-resizing")}).on("mouseleave",function(t){g('.ew-tree-table .ew-tb-resize[move="true"]').attr("move","false");g("body").removeClass("ew-tree-table-resizing")});function q(x,u,z){var y=[];for(var w=0;wlength;w++){var t=false;for(var v=0;vlength;v++){if(x[w][z]==x[v][u]){t=true;break}}if(!t){y.push(x[w][z])}}return y}function n(u,v){if(l(v)==="Array"){for(var t=0;tlength;t++){if(u==v[t]){return true}}}return u==v}function l(t){if(t===null){return"Null"}if(t===undefined){return"Undefined"}return Object.prototype.toString.call(t).slice(8,-1)}function m(){return document.documentElement.clientHeight||document.body.clientHeight}var a={render:function(t){return new p(t)},reload:function(u,t){k[u].reload(t)},on:function(t,u){return layui.onevent.call(this,h,t,u)},pidToChildren:function(z,u,A,t,x){if(!t){t="children"}var y=[];for(var w=0;wlength;w++){if(z[w][u]==z[w][A]){return console.error("第"+w+"条数据的"+u+"与"+A+"相同",z[w])}if(x===undefined){x=q(z,u,A)}if(n(z[w][A],x)){var v=this.pidToChildren(z,u,A,t,z[w][u]);if(v.length>0){z[w][t]=v}y.push(z[w])}}return y}};g("head").append(['"].join(""));s("treeTable",a)});

- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <title>设备上下线统计title>
-
- <script type="text/javascript" src="../../../language/language.js">script>
- <script type="text/javascript" src="../../proto/protobuf.min.js">script>
- <script type="text/javascript" src="../../component/js/common.js">script>
- <script type="text/javascript" src="../../component/js/commonNew.js">script>
-
- <script type="text/javascript" src="../../layui/layui.js?r=3.0">script>
- <link type="text/css" rel="stylesheet" href="../../layui/css/layui_base.css"/>
- <script type="text/javascript" src="../../component/js/jquery-2.1.0.min.js">script>
-
-
- <script src="../../component/js/xlsx.js">script>
- <script src="../../component/xlsx/dom.js">script>
- <script src="../../component/xlsx/xlsx.core.min.js">script>
-
- <script type="text/javascript" src="./error.js?r=1.3.3">script>
- head>
-
- <body>
- <form class="layui-form">
-
- <div id="none">
- <table class="layui-table" lay-filter="tabView" id="tabView">table>
- div>
-
- form>
- body>
-
- <script>
- var userPerson = getUser();
- var httpUser = { userName: userPerson.name, userGuid: userPerson.sessionId };
-
- let IPS;
- let str = document.domain;
- if (document.domain == 'localhost' || document.domain == "192.168.100.50") {
- IPS = 'https://xxc.chinamdvr.com:7050/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- } else {
- IPS = 'https://www.chinamdvr.com:9201/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- }
-
- let $, element, form, laydate, layer, tableView, util, treeTable;
-
- let listData = [
- {
- "region": "系统管理",
- "required": 1,
- "installed": 2,
- "checked": 3,
- "installNo": 4,
- "process": "60%",
-
- "parentId": -1,
- id: 1,
- "open": false,
- "haveChild": true
- }];
-
- layui.config({
- base: './'
- }).use(['element', 'form', 'laydate', 'layer', "util", "treeTable"], function(){
- form = layui.form, laydate = layui.laydate, layer = layui.layer;
- util = layui.util;
- element = layui.element;
- $ = layui.$;
- treeTable = layui.treeTable;
-
- // 渲染
- var inst = treeTable.render({
- elem: '#tabView',
- tree: {
- iconIndex: 0,
- isPidData: true,
- idName: 'id', // 父ID
- pidName: 'parentId', // 子ID
- // openName: 'open',// 是否默认展开的字段名
- },
- maxHeight: '501px',
- cols: [[
- { field: 'region', title: "网点所在区", align: 'center' },
- { field: 'required', title: "总数", align: 'center' },
- { field: 'installed', title: "已安装", align: 'center' },
- // { field: 'checked', title: "已验收", align: 'center' },
- // { field: 'installNo', title: "未验收", align: 'center' },
- { field: 'process', title: "安装进度", align: 'center', templet: schedule },
- ]],
- reqData: function (data, callback) { // 懒加载也可以用url方式,这里用reqData方式演示
- console.log(data)
- if (data == undefined) {
- callback([{
- "region": "系统管理",
- "required": 1,
- "installed": 2,
- "checked": 3,
- "installNo": 4,
- "process": "60%",
-
- "parentId": -1,
- id: 1,
- "open": false,
- "haveChild": true
- }]);
- } else if (data.id == 1) {
- callback([{
- "region": "用户管理",
- "required": 11,
- "installed": 22,
- "checked": 33,
- "installNo": 44,
- "process": "61%",
-
- "parentId": 1,
- id: 2,
- "open": false,
- "haveChild": true
- }]);
- } else if (data.id == 2) {
- callback([{
- "region": "查询用户",
- "required": 111,
- "installed": 222,
- "checked": 333,
- "installNo": 444,
- "process": "63%",
-
- "parentId": 2,
- id: 3,
- "open": false,
- "haveChild": false
- },
- {
- "region": "添加用户",
- "required": 1111,
- "installed": 2222,
- "checked": 3333,
- "installNo": 4444,
- "process": "64%",
-
- "parentId": 2,
- id: 4,
- "open": false,
- "haveChild": false
- },
- {
- "region": "修改用户",
- "required": 11111,
- "installed": 22222,
- "checked": 33333,
- "installNo": 44444,
- "parentId": 2,
- "process": "67%",
-
- "parentId": 2,
- id: 5,
- "open": false,
- "haveChild": false
- },
- {
- "region": "删除用户",
- "required": 111111,
- "installed": 222222,
- "checked": 333333,
- "installNo": 444444,
- "process": "69%",
-
- "parentId": 2,
- id: 6,
- "open": false,
- "haveChild": false
- }]);
- }
- },
- toolbar: true,
- defaultToolbar: ['exports'],
- page: true,
- done: function (res, curr, count) {
- element.render();
- // element.progress('rate', '75%');
- }
- });
-
- interfaceParam();
- });
-
- /** 进度条 */
- function schedule(d) {
- //设置页面进度条
- return '' +
- '
- ''
- }
-
- // 调用接口
- function interfaceParam() {
- let url = IPS + "/progress";
-
- let timerTimeOut, loadingTimeOut;
- layui.use('layer', function () {
- layer = layui.layer;
- loadingTimeOut = layer.load(2, { shade: false });
- timerTimeOut = setTimeout(function () {
- layer.open({
- title: languageTL.common.promptTitle,
- content: languageTL.count.btns2[5],
- btn: [languageTL.confirm]
- });
- layer.close(loadingTimeOut);
- }, 1000 * 10);
- });
- proPostNew(url, "FtpManage.EpibolyTicketProgressReq", "FtpManage.EpibolyTicketProgressResp", { userInfo: httpUser }, function (code, result) {
- clearTimeout(timerTimeOut); // 关闭定时器
- layer.close(loadingTimeOut);
- if (code == 200) {
- console.log(result)
-
- result.epibolyTicketProgressList.map(item => {
- item.installNo = item.installed - item.checked;
- item.process = percentNum(item.installed , item.required);
- })
-
- listData = result.epibolyTicketProgressList;
-
- } else {
- layer.msg(errLayer(result.code));
- }
- }, 'ftpManage', 'FtpManage.Error');
- }
-
- //小数点后两位百分比
- function percentNum(num,num2) {
- return (Math.round(num / num2 * 10000) / 100.00 + "%");
- }
-
-
- script>
-
- html>

- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <title>设备上下线统计title>
-
- <script type="text/javascript" src="../../../language/language.js">script>
- <script type="text/javascript" src="../../proto/protobuf.min.js">script>
- <script type="text/javascript" src="../../component/js/common.js">script>
- <script type="text/javascript" src="../../component/js/commonNew.js">script>
-
- <script type="text/javascript" src="../../layui/layui.js?r=3.0">script>
- <link type="text/css" rel="stylesheet" href="../../layui/css/layui_base.css"/>
- <script type="text/javascript" src="../../component/js/jquery-2.1.0.min.js">script>
-
-
- <script src="../../component/js/xlsx.js">script>
- <script src="../../component/xlsx/dom.js">script>
- <script src="../../component/xlsx/xlsx.core.min.js">script>
-
- <script type="text/javascript" src="./error.js?r=1.3.3">script>
-
- head>
-
- <body>
- <form class="layui-form">
-
- <div class="layui-form-item" id="dateInput">
- <div class="layui-inline">
- <label class="layui-form-label"><script>document.write(languageTL.count.startTime)script>label>
- <div class="layui-input-inline">
- <input type="text" name="startDate" class="layui-input" id="startDate" lay-verify="required">
- div>
- div>
- <div class="layui-inline">
- <label class="layui-form-label"><script>document.write(languageTL.count.endTime)script>label>
- <div class="layui-input-inline">
- <input type="text" name="endDate" class="layui-input" id="endDate" lay-verify="required">
- div>
- div>
- div>
-
-
- <div class="layui-form-item" style="margin-left: 8px;">
- <div class="layui-inline" style="margin-left: 90px;" id="queryBtn">
- <button type="submit" class="layui-btn" lay-submit="" lay-filter="demo">
- <script>document.write(languageTL.count.query)script>
- button>
- div>
-
- <div class="layui-inline" style="margin-left: 220px;">
- <button type="button" class="layui-btn" id="totalAll" onclick="selectType(0)">已安装(0)button>
- <button type="button" class="layui-btn layui-bg-green" id="yiYanShou" onclick="selectType(1)">已验收(0)button>
- <button type="button" class="layui-btn layui-bg-red" id="weiYanShou" onclick="selectType(2)">未验收(0)button>
- div>
- div>
-
-
- <div id="none">
- <table class="layui-table" lay-filter="tabView" id="tabView">table>
- <div id="demo-laypage-limits">div>
- div>
-
-
- <table class="layui-table" lay-filter="tabViewDetail" id="tabViewDetail">table>
-
- form>
- body>
-
- <script>
- var userPerson = getUser();
- var httpUser = { userName: userPerson.name, userGuid: userPerson.sessionId };
-
- let IPS, IPSDetail;
- let str = document.domain;
- if (document.domain == 'localhost' || document.domain == "192.168.100.50") {
- IPS = 'https://xxc.chinamdvr.com:7050/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- IPSDetail = 'https://xxc.chinamdvr.com:7050/v1/api/web/mgmt/deviceSetup/setupTicket/detail';
- } else {
- IPS = 'https://www.chinamdvr.com:9201/v1/api/web/mgmt/deviceSetup/setupTicket/statistic';
- IPSDetail = 'https://www.chinamdvr.com:9201/v1/api/web/mgmt/deviceSetup/setupTicket/detail';
- }
-
- let $, element, form, laydate, layer, tableView, treeTable;
-
- let pageSize = 10, pageNum = 1, pageTotal = 0, pageData = [], laypage;
-
- let listData = [], listDataDetail = [], objData = {};
- let number;
-
- let colsList = [
- { field: 'region', title: "网点所在区", align: 'center' },
- { field: 'totalInstalled', title: "已安装", align: 'center' },
- // { field: 'newInstalled', title: "新安装设备", align: 'center' },
- { field: 'checkFinished', title: "已验收", align: 'center' },
- { field: 'totalUnchecked', title: "未验收", align: 'center' },
- ];
-
- let colsListDetail = [
- {field: 'plateNumber', title: languageTL.common.VehicleID, align: 'center'},
- {field: 'sn', title: "SN", align: 'center'},
- {field: 'stateS', title: languageTL.person.table_title_1[5], align: 'center'},
- {field: 'creator', title: "安装人", align: 'center'},
- {field: 'createAt', title: "安装时间", align: 'center'},
- {field: 'companyName', title: "安装公司", align: 'center'},
-
- {field: 'auditTor', title: "审批人", align: 'center'},
- {field: 'auditAt', title: "审批时间", align: 'center'},
- {field: 'auditMemo', title: "审批备注", align: 'center'},
-
- {field: 'yanTor', title: "验收人", align: 'center'},
- {field: 'yanAt', title: "验收时间", align: 'center'},
- {field: 'yanMemo', title: "验收备注", align: 'center'},
- ];
-
- layui.use(['element', 'form', 'laydate', 'layer'], function(){
- $ = layui.jquery ,element = layui.element, form = layui.form, laydate = layui.laydate, layer = layui.layer;
-
- tableDetail();
- tableRender();
-
- const LANGAll = getQueryLanguage("la");
-
- // 开始时间
- laydate.render({
- elem: '#startDate',
- format: 'yyyy-MM-dd',
- trigger: 'click',
- type: 'date',
- lang: LANGAll,
- done: function (value, date) {
- $('#startDate').val(value);
-
- let start = new Date(value).getTime();
- let end;
- let e = $('#endDate').val();
-
- if (e == '') {
- end = 0;
- } else {
- end = new Date(e).getTime();
-
- if (end < start) {
- $('#endDate').click();
- layer.msg(languageTL.gpsCount.tabs[6])
- }
- }
- }
- });
-
- // 结束时间
- laydate.render({
- elem: '#endDate',
- format: 'yyyy-MM-dd',
- type: 'date',
- trigger: 'click',
- lang: LANGAll,
- done: function (value, date) {
- $('#endDate').val(value);
-
- let end = new Date(value).getTime();
- let start;
- let s = $('#startDate').val();
-
- if (s == '') {
- start = 0;
- } else {
- start = new Date(s).getTime();
- if (end < start) {
- $('#startDate').click();
- layer.msg(languageTL.gpsCount.tabs[5])
- }
- }
- }
- });
-
- $('#startDate').val(getDateInfo(0)); // 开始时间默认值
- $('#endDate').val(getDateInfo(0)); // 结束时间默认值
-
- number = parseInt(getQueryStringOld("number"));
-
- if (number == 4001) {
- $('#endDate').attr('lay-verify', '');
- $('#startDate').attr('lay-verify', '');
-
- $("#dateInput").css("display", "none");
- $("#queryBtn").css("display", "none");
-
- let url, requestParam, returnParam;
- objData.userInfo = {
- userName: httpUser.userName,
- userGuid: httpUser.userGuid
- };
- url = IPS + "/all";
- requestParam = "FtpManage.TicketStatisticAllReq";
- returnParam = "FtpManage.TicketStatisticResp";
- interfaceParam(url, requestParam, returnParam, objData, 1);
- }
-
- form.render();
-
- //监听提交
- form.on('submit(demo)', function (data) {
- data = data.field;
- let url, requestParam, returnParam;
-
- objData = {
- userInfo :{
- userName: httpUser.userName,
- userGuid: httpUser.userGuid
- },
- startDate : data.startDate,
- endDate : data.endDate
- };
- let a = new Date(Date.parse(data.endDatetime)).getTime();
- let b = new Date(Date.parse(data.startDatetime)).getTime();
- if (b > a) {
- layer.open({
- title: languageTL.common.promptTitle
- ,content: languageTL.count.btns[14],
- time: 3000
- });
- listData = [];
- listDataDetail = [];
- tableDetail();
- } else {
- url = IPS + "/date";
- requestParam = "FtpManage.TicketStatisticDateReq";
- returnParam = "FtpManage.TicketStatisticResp";
- interfaceParam(url, requestParam, returnParam, objData, 1);
- }
- return false;
- });
- });
-
- // 调用接口
- function interfaceParam(url, requestParam, returnParam, obj, number) {
- let timerTimeOut, loadingTimeOut;
- layui.use('layer', function () {
- layer = layui.layer;
- loadingTimeOut = layer.load(2, { shade: false });
- timerTimeOut = setTimeout(function () {
- layer.open({
- title: languageTL.common.promptTitle,
- content: languageTL.count.btns2[5],
- btn: [languageTL.confirm]
- });
- layer.close(loadingTimeOut);
- }, 1000 * 10);
- });
- proPostNew(url, requestParam, returnParam, obj, function (code, result) {
- clearTimeout(timerTimeOut); // 关闭定时器
- layer.close(loadingTimeOut);
- if (code == 200) {
- console.log(result)
- if (number === 1) {
- if (result.summation) {
- $("#totalAll").html("已安装(" + result.summation.totalInstalled + ")");
- $("#yiYanShou").html("已验收(" + result.summation.checkFinished + ")");
- $("#weiYanShou").html("未验收(" + result.summation.totalUnchecked + ")");
- }
- result.ticketStatisticList.map((item, index) => {
- item.id = index;
- item.open = false;
- item.haveChild = false;
- })
-
- pageData = result.ticketStatisticList;
- pageTotal = result.ticketStatisticList.length;
-
- listData = pageData.slice((pageNum - 1) * pageSize, pageNum * pageSize);
- listDataDetail = [];
- tableRender();
- } else if (number === 2) {
- result.tickets.map(item => {
- if (item.result == 1 && item.stage == 2) {
- item.stateS = "待审批";
- } else if (item.result == 3 && item.stage == 2) {
- item.stateS = "审批未通过";
- } else if (item.result == 1 && item.stage == 3) {
- item.stateS = "审批通过";
- } else if (item.result == 2 && item.stage == 3) {
- item.stateS = "验收通过";
- } else if (item.result == 3 && item.stage == 3) {
- item.stateS = "验收未通过";
- }
- })
- listDataDetail = result.tickets;
- }
- tableDetail();
- } else {
- layer.msg(errLayer(result.code));
- }
- }, 'ftpManage', 'FtpManage.Error');
- }
-
- function tableRender () {
- layui.config({
- base: './'
- }).use(['treeTable', "laypage"], function () {
- treeTable = layui.treeTable;
- laypage = layui.laypage;
-
- // 渲染
- var inst = treeTable.render({
- elem: '#tabView',
- height: "250",
- tree: {
- iconIndex: 0,
- isPidData: true,
- idName: 'id', // 父ID
- pidName: 'parentId', // 子ID
- // openName: 'open',// 是否默认展开的字段名
- },
- maxHeight: '501px',
- cols: [colsList],
- reqData: function (data, callback) { // 懒加载也可以用url方式,这里用reqData方式演示
- console.log(data)
- console.log("无敌是多么及名片")
- if (data == undefined) {
- callback(listData);
- } else if (data.id == 1) {
-
- }
- },
- toolbar: true,
- defaultToolbar: [
- {
- title: "排列",
- layEvent: 'LAYTABLE_COLS',
- icon: 'layui-icon-cols'
- },
- {
- title: languageTL.historyMap.exportXls,
- layEvent: 'export',
- icon: 'layui-icon-export'
- }],
- page: true,
- });
-
- treeTable.on('row(tabView)', function (obj) {
- let url, requestParam, returnParam;
- if (number == 4001) {
- let objEv = {
- userInfo: {
- userName: httpUser.userName,
- userGuid: httpUser.userGuid
- },
- region: obj.data.region
- }
- url = IPSDetail + "/all";
- requestParam = "FtpManage.TicketDetailAllReq";
- returnParam = "FtpManage.TicketDetailResp";
- interfaceParam(url, requestParam, returnParam, objEv, 2);
- } else {
- let objEv = {
- userInfo: {
- userName: httpUser.userName,
- userGuid: httpUser.userGuid
- },
- region: obj.data.region,
- startDate: objData.startDate,
- endDate: objData.endDate,
- }
- url = IPSDetail + "/date";
- requestParam = "FtpManage.TicketDetailDateReq";
- returnParam = "FtpManage.TicketDetailResp";
- interfaceParam(url, requestParam, returnParam, objEv, 2);
- }
- });
-
- treeTable.on('toolbar(tabView)', function (obj) {
- switch (obj.event) {
- case 'export':
- if (listData.length == 0) {
- layer.msg(languageTL.deviceVideo.loss[3]);
- return;
- }
-
- let tHeader = [], filterVal = [];
- colsList.map((item, index) => {
- tHeader.push(item.title);
- filterVal.push(item.field);
- });
- // 导出的数据
- const data = PlExportExcel.formatJson(filterVal, listData);
- // 导出表格
- PlExportExcel.exportJsonToExcel({
- header: tHeader,
- data: data,
- filename: "Device",
- autoWidth: true,
- bookType: 'xlsx'
- });
- break;
- };
- });
-
- // 自定义每页条数的选择项
- laypage.render({
- elem: 'demo-laypage-limits',
- count: pageTotal,
- limit: pageSize,
- curr: pageNum,
- limits: [10, 20, 50, 100],
- layout: ['count', 'prev', 'page', 'next', 'limit'],
- jump: function (obj, first) {
- //obj包含了当前分页的所有参数,比如:
- //obj.curr; //得到当前页,以便向服务端请求对应页的数据。
- //obj.limit; //得到每页显示的条数
- //首次不执行
- if (!first) {
- //do something
- pageSize = obj.limit;
- pageNum = obj.curr;
-
- let from = (pageNum - 1) * pageSize;
- let to = pageNum * pageSize;
- listData = pageData.slice(from, to);
- tableRender();
- }
- }
- });
- });
- }
-
- function tableDetail() {
- layui.use('table', function () {
- tableView = layui.table;
- // 详细信息渲染表格
- tableView.render({
- elem: '#tabViewDetail',
- data: listDataDetail,
- height: '320',
- toolbar: '#toolbarDemo',
- defaultToolbar: [{
- title: languageTL.historyMap.exportXls,
- layEvent: 'export',
- icon: 'layui-icon-export'
- }],
- cellMinWidth: 80,
- cols: [colsListDetail],
- page: true, //是否显示分页
- limits: [10, 20, 50, 100],
- page: {
- count: listDataDetail.length,
- prev: languageTL.common.previousStr,
- next: languageTL.common.nextStr,
- layout: ['prev', 'page', 'next', 'count', 'limit']
- }
- });
-
- //头工具栏事件 详细信息导出
- tableView.on('toolbar(tabViewDetail)', function (obj) {
- switch (obj.event) {
- //自定义头工具栏右侧图标 - 提示
- case 'export':
- if (listDataDetail.length == 0) {
- layer.msg(languageTL.deviceVideo.loss[3]);
- return;
- }
-
- let tHeader = [], filterVal = [];
- colsListDetail.map((item, index) => {
- tHeader.push(item.title);
- filterVal.push(item.field);
- });
- // 导出的数据
- const data = PlExportExcel.formatJson(filterVal, listDataDetail);
- // 导出表格
- PlExportExcel.exportJsonToExcel({
- header: tHeader,
- data: data,
- filename: "Detail",
- autoWidth: true,
- bookType: 'xlsx'
- });
- break;
- };
- });
- });
- }
-
- // 时间默认值
- function getDateInfo(type) {
- let date = new Date();
- let year = date.getFullYear();
- let month = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1);
- let day = date.getDate() >= 10 ? date.getDate() : '0' + date.getDate();
- let hour = date.getHours() >= 10 ? date.getHours() : '0' + date.getHours();
- let minute = date.getMinutes() >= 10 ? date.getMinutes() : '0' + date.getMinutes()
- let second = date.getSeconds() >= 10 ? date.getSeconds() : '0' + date.getSeconds()
-
- let month_1 = Number(month - 1) >= 10 ? Number(month - 1) : '0' + Number(month - 1);
-
- let arr = [
- year + '-' + month + '-' + day
- ];
- return arr[type];
- }
-
- script>
-
- html>