From 0e974a5dd2cbfef23323ec5d454b804947f0e2bf Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Tue, 22 Apr 2025 16:19:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E8=BF=9B=E5=BA=A6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E9=A1=B5=E9=9D=A2=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProProgressController.java | 6 +- .../backstage/entity/vo/ProProgressVo.java | 4 +- .../img/synthesisQuery/update_progress.png | Bin 0 -> 551 bytes .../js/synthesisQuery/proProgressUpdate.js | 187 ++++++++++++++++++ .../synthesisQuery/proProgressUpdate.html | 59 ++++++ 5 files changed, 251 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/static/img/synthesisQuery/update_progress.png create mode 100644 src/main/resources/static/js/synthesisQuery/proProgressUpdate.js create mode 100644 src/main/resources/static/pages/synthesisQuery/proProgressUpdate.html diff --git a/src/main/java/com/bonus/digitalSignage/backstage/controller/ProProgressController.java b/src/main/java/com/bonus/digitalSignage/backstage/controller/ProProgressController.java index dba31f1..98b2d7c 100644 --- a/src/main/java/com/bonus/digitalSignage/backstage/controller/ProProgressController.java +++ b/src/main/java/com/bonus/digitalSignage/backstage/controller/ProProgressController.java @@ -37,7 +37,7 @@ public class ProProgressController { @PostMapping(value = "getList") @DecryptAndVerify(decryptedClass = QueryParamDto.class)//加解密统一管理 @LogAnnotation(operModul = "综合查询-工程进度更新", operation = "查询列表", operDesc = "系统级事件",operType="查询") -// @PreAuthorize("@pms.hasPermission('comprehensive:data:query')") + @PreAuthorize("@pms.hasPermission('comprehensive:data:query')") public ServerResponse getList(EncryptedReq dto) { PageHelper.startPage(dto.getData().getPageNum(), dto.getData().getPageSize()); return service.getList(dto.getData()); @@ -47,7 +47,7 @@ public class ProProgressController { @PostMapping("downloadExcel") @DecryptAndVerify(decryptedClass = QueryParamDto.class)//加解密统一管理 @LogAnnotation(operModul = "工程进度更新-工程进度更新", operation = "导出列表", operDesc = "系统级事件",operType="导出") -// @PreAuthorize("@pms.hasPermission('comprehensive:data:export')") + @PreAuthorize("@pms.hasPermission('comprehensive:data:export')") public void downloadExcel(HttpServletResponse response, EncryptedReq dto) { service.downloadExcel(dto.getData(),response); } @@ -56,7 +56,7 @@ public class ProProgressController { @PostMapping("detailQuery") @DecryptAndVerify(decryptedClass = QueryParamDto.class)//加解密统一管理 @LogAnnotation(operModul = "工程进度更新-更新进度", operation = "查询详情", operDesc = "系统级事件",operType="查询") -// @PreAuthorize("@pms.hasPermission('comprehensive:data:detailQuery')") + @PreAuthorize("@pms.hasPermission('comprehensive:data:detailQuery')") public ServerResponse detailQuery(HttpServletResponse response, EncryptedReq dto) { return service.detailQuery(dto.getData()); } diff --git a/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/ProProgressVo.java b/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/ProProgressVo.java index c8dcb4a..16467cc 100644 --- a/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/ProProgressVo.java +++ b/src/main/java/com/bonus/digitalSignage/backstage/entity/vo/ProProgressVo.java @@ -42,12 +42,12 @@ public class ProProgressVo { /** * 项目进度 */ - @Excel(name = "项目进度", width = 30.0, orderNum = "3") + @Excel(name = "项目进度(%)", width = 30.0, orderNum = "3") private double proProgress; /** * 更新时间 */ - @Excel(name = "更新时间", width = 30.0, orderNum = "4") + @Excel(name = "更新时间", width = 30.0, orderNum = "4",format = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; /** diff --git a/src/main/resources/static/img/synthesisQuery/update_progress.png b/src/main/resources/static/img/synthesisQuery/update_progress.png new file mode 100644 index 0000000000000000000000000000000000000000..022014261421a92fc5f6d2e6fcb8225003b9e497 GIT binary patch literal 551 zcmV+?0@(eDP)Px$;Ymb6R9HvtSM70vKor~u;!L{027(;~D~T2&K`ca5iQ0jr0qG($qP}>Ti>MrT zoFtjd#J~6Pmfd}OPr@(%=$Gr`?*e$7<}VJgT93WuJuF%?5G30fKtq5tA{yBOX#s%z zemfvm0Q&K}&rW9sAiSl&84zOtqUgcxJQMQ}Aiqv`CdAHu_qvWBGMzt+0Q9GM$c)A5 zGR~N2PF#Hb1p`eAOJG_6!tKO}3$p=}b<~}U!)Fr$HieAzSCTNzwA&N&x+2J7myIX!|zyCbpNGoT~&NwNE2Y zYf_UUb$e6*HsVkkb$j;~(4AKR$Qj^y8g)my3+`RN0U+Jqrv4&D;kcp9kXjRd=Dd)g zwf3v?luCldQ3Ag$4+P0}b9}n9>o5~c{74rBiP}?@0A&6XcvPiZ6XVHDQQcJ?M8$jW z7Ox*2_5<4_Jo||=m7L%D7JS7yVW1k>YLiY%VbhYOnXxucY5`o1UYwc8aeYSDN!qMG zk7B2xMC1bjD-dOpR=KC}OfkHih7^;BObb9dzIqT9fUf65Gp39tqN;W)V%6>VVD=e! p5&)R6wEdG}%s`XgZ?g9vzz43}6EJ#!gwp^3002ovPDHLkV1nWl^vwVO literal 0 HcmV?d00001 diff --git a/src/main/resources/static/js/synthesisQuery/proProgressUpdate.js b/src/main/resources/static/js/synthesisQuery/proProgressUpdate.js new file mode 100644 index 0000000..d272134 --- /dev/null +++ b/src/main/resources/static/js/synthesisQuery/proProgressUpdate.js @@ -0,0 +1,187 @@ +let form, layer, table, tableIns,element; +let pageNum = 1, limitSize = 10; // 默认第一页,分页数量为10 +layui.use(['form', 'layer', 'table','element'], function () { + form = layui.form; + layer = layui.layer; + table = layui.table; + element = layui.element; + layui.form.render(); + pages(1, 10, 1); + element.render(); +}) + +function pages(pageNum, pageSize, typeNum) { + let params = getReqParams(pageNum, pageSize, typeNum); + let url = dataUrl + "/backstage/proProgress/getList" + ajaxRequest(url, "POST", params, true, function () { + }, function (result) { + console.log(result); + if (result.code === 200) { + if (result.data) { + initTable(result.data, result.limit, result.curr) + laypages(result.count, result.curr, result.limit) + element.render(); + } + } else if (result.code === 500) { + layer.alert(result.msg, {icon: 2}) + } + }, function (xhr) { + error(xhr) + }); + +} + +function laypages(total, page, limit) { + layui.use(['laypage'], function () { + let laypage = layui.laypage; + laypage.render({ + elem: 'voi-page', + count: total, + curr: page, + limit: limit, + limits: [10, 20, 50, 100, 200, 500], + layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], + groups: 5, + jump: function (obj, first) { + if (!first) { + pageNum = obj.curr, limitSize = obj.limit; + pages(obj.curr, obj.limit, null); + } + } + }); + }) +} + +/*初始化表格*/ +function initTable(dataList, limit, page) { + let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); + pageNum = page, limitSize = limit; + tableIns = table.render({ + elem: "#table_data", + height: "full-150", + data: dataList, + limit: limit, + cols: [ + [ + { + title: "序号", width: "5%", unresize: true, align: "center", + templet: function (d) { + return (page - 1) * limit + d.LAY_NUM; + } + }, + {field: "proName", title: "项目名称", width: "30%", unresize: true, align: "center"}, + {field: "voltageLevel", title: "电压等级", width: "10%", unresize: true, align: "center"}, + {title: "项目进度", width: "20%", unresize: true, align: "center",templet: schedule}, + {field: "updateUserName", title: "更新人", width: "10%", unresize: true, align: "center"}, + {field: "updateTime", title: "更新时间", width: "15%", unresize: true, align: "center"}, + { + title: "操作", unresize: true, width: "10%", align: "center", + templet: function (d) { + let html = ''; + let view = "" + html = view; + return html; + } + }, + ], + ], + done: function (res, curr, count) { + layer.close(loadingMsg); + table.resize("table_data"); + count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block"); + count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto"); + element.render(); + }, + }); +} + + +// 获取参数 +function getReqParams(page, limit, type) { + let obj = {}; + if (!type) { + obj = { + pageNum: page + "", + pageSize: limit + "", + keyWord: $('#keyWord').val(), + + }; + } else { + obj = { + pageNum: '1', + pageSize: '10', + keyWord: '', + }; + } + obj = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + return obj; +} + +// 查询/重置 +function query(type) { + pageNum = 1; + if(type === 2){ + $('#keyWord').val(''); + layui.form.render(); + } + pages(1, limitSize); +} +/**详情*/ +function viewData(obj){ + openIframeByParamObj("viewData", "详情", "./proClassifyStatisticsDetail.html", "92%", "95%", obj); +} + +/*下载*/ +function downloadExcel(){ + let obj = { + id: $('#proId').val() + } + let params = { + encryptedData: encryptCBC(JSON.stringify(obj)) + } + let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); + let url = dataUrl + "/backstage/proProgress/downloadExcel?token=" + tokens + "&encryptedData=" + encodeURIComponent(encryptCBC(JSON.stringify(obj))); + let xhr = new XMLHttpRequest(); + xhr.open("post", url, true); + xhr.responseType = "blob"; // 转换流 + xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8') + xhr.onload = function () { + layer.close(loadingMsg); + if (this.status === 200) { + let blob = this.response; + var a = document.createElement("a"); + var url = window.URL.createObjectURL(blob); + a.href = url; + a.download = "工程进度更新" + ".xlsx"; // 文件名 + } else { + layer.msg("数据导出发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000}); + } + a.click(); + window.URL.revokeObjectURL(url); + }; + // xhr.send(params); + xhr.send(); +} + +// 设置进度值 +function schedule(d) { + d.proProgress = parseFloat(d.proProgress ? d.proProgress : 0); + d.filter == undefined ? (d.filter = (pageNum - 1) * limitSize + d.LAY_NUM) : d.filter; + d.proProgress == undefined ? (d.proProgress = 100) : d.proProgress; + var color = "layui-bg-orange"; + if (d.proProgress < 100) { + color = "layui-bg-orange"; + } else if (d.proProgress === 100) { + color = "layui-bg-primary"; + } else if (d.proProgress > 100) { + color = "layui-bg-blue"; + } + //设置页面进度条 + return ( + '
' + + '
' + + "
" + ); +} \ No newline at end of file diff --git a/src/main/resources/static/pages/synthesisQuery/proProgressUpdate.html b/src/main/resources/static/pages/synthesisQuery/proProgressUpdate.html new file mode 100644 index 0000000..0a553e6 --- /dev/null +++ b/src/main/resources/static/pages/synthesisQuery/proProgressUpdate.html @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + 工程进度更新 + + +
+ +
+
+
+
+
+ + + + \ No newline at end of file