From c99cbe6c0064deee3e57f1a751ff0717290ac621 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 05 六月 2025 15:43:56 +0800
Subject: [PATCH] *
---
src/main/webapp/views/taskWrkLog/taskWrkLog.html | 529 +++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 358 insertions(+), 171 deletions(-)
diff --git a/src/main/webapp/views/taskWrkLog/taskWrkLog.html b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
index a8831d4..9871a11 100644
--- a/src/main/webapp/views/taskWrkLog/taskWrkLog.html
+++ b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
@@ -1,181 +1,368 @@
<!DOCTYPE html>
<html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>浠诲姟绠$悊</title>
- <link rel="stylesheet" href="../../static/wcs/css/element.css">
- <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
- <script type="text/javascript" src="../../static/wms/layui/layui.js"></script>
- <script type="text/javascript" src="../../static/wcs/js/common.js"></script>
- <script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
- <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
- </head>
+<head>
+ <meta charset="UTF-8">
+ <title>浠诲姟绠$悊</title>
+ <link rel="stylesheet" href="../../static/wcs/css/element.css">
+ <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
+ <script type="text/javascript" src="../../static/wms/layui/layui.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/common.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/xlsx.full.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/FileSaver.min.js"></script>
+</head>
- <body>
- <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
- <div style="width: 100%;">
- <el-card class="box-card">
- <el-form :inline="true" :model="tableSearchParam" class="demo-form-inline">
- <el-form-item label="">
- <el-input v-model="tableSearchParam.task_no" placeholder="浠诲姟鍙�"></el-input>
- </el-form-item>
- <el-form-item label="">
- <el-input v-model="tableSearchParam.wrk_no" placeholder="宸ヤ綔鍙�"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="getTableData">鏌ヨ</el-button>
- <el-button type="primary" @click="resetParam">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <el-table ref="singleTable" :data="tableData" style="width: 100%;">
- <el-table-column label="鎿嶄綔" width="100">
- <template slot-scope="scope">
- <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">
- <el-button icon="el-icon-more" size="mini" type="primary"></el-button>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item command="showCommand">鏌ョ湅鎸囦护</el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </template>
- </el-table-column>
- <el-table-column property="taskNo" label="浠诲姟鍙�">
- </el-table-column>
- <el-table-column property="status$" label="浠诲姟鐘舵��">
- </el-table-column>
- <el-table-column property="wrkNo" label="宸ヤ綔鍙�">
- </el-table-column>
- <el-table-column property="createTime$" label="浠诲姟鏃堕棿">
- </el-table-column>
- <el-table-column property="durationTime" label="鎸佺画鏃堕暱">
- </el-table-column>
- <el-table-column property="ioType$" label="浠诲姟绫诲瀷">
- </el-table-column>
- <el-table-column property="startPoint" label="璧风偣浣嶇疆">
- </el-table-column>
- <el-table-column property="targetPoint" label="缁堢偣浣嶇疆">
- </el-table-column>
- <el-table-column property="wrkSts$" label="宸ヤ綔鐘舵��">
- </el-table-column>
- <el-table-column property="crnNo" label="鍫嗗灈鏈哄彿">
- </el-table-column>
- </el-table>
+<body>
+<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+ <div style="width: 100%;">
+ <el-card class="box-card">
+ <el-form :inline="true" :model="tableSearchParam" class="demo-form-inline">
+ <el-form-item label="">
+ <el-input v-model="tableSearchParam.task_no" placeholder="浠诲姟鍙�"></el-input>
+ </el-form-item>
+ <el-form-item label="">
+ <el-input v-model="tableSearchParam.wrk_no" placeholder="宸ヤ綔鍙�"></el-input>
+ </el-form-item>
+ <el-form-item label="">
+ <el-select v-model="tableSearchParam.status" placeholder="浠诲姟鐘舵��">
+ <el-option label="鎺ユ敹" value="1"></el-option>
+ <el-option label="娲惧彂" value="2"></el-option>
+ <el-option label="瀹岀粨" value="5"></el-option>
+ <el-option label="鍙栨秷" value="4"></el-option>
+ <el-option label="鎵嬪姩瀹岀粨" value="7"></el-option>
+ <el-option label="鍑哄簱鍒拌緭閫佺嚎" value="9"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="getTableData">鏌ヨ</el-button>
+ <el-button type="primary" @click="resetParam">閲嶇疆</el-button>
+ <el-button type="primary" @click="exportTable">瀵煎嚭褰撳墠椤甸潰鏁版嵁</el-button>
+ <el-button type="primary" @click="exportTableAll">瀵煎嚭鎵�鏈�(鐐瑰嚮鍚庣瓑寰�2鍒嗛挓浠ヤ笂锛屼笉瑕侀噸澶嶇偣鍑�)</el-button>
+ </el-form-item>
+ </el-form>
+ <el-table ref="singleTable" :data="tableData" style="width: 100%;">
+<!-- <el-table-column label="鎿嶄綔" width="100">-->
+<!-- <template slot-scope="scope">-->
+<!-- <el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">-->
+<!-- <el-button icon="el-icon-more" size="mini" type="primary"></el-button>-->
+<!-- <el-dropdown-menu slot="dropdown">-->
+<!-- <el-dropdown-item command="showCommand">鏌ョ湅鎸囦护</el-dropdown-item>-->
+<!-- </el-dropdown-menu>-->
+<!-- </el-dropdown>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column property="taskNo" label="浠诲姟鍙�">
+ </el-table-column>
+ <el-table-column property="status$" label="浠诲姟鐘舵��">
+ </el-table-column>
+ <el-table-column property="wrkNo" label="宸ヤ綔鍙�">
+ </el-table-column>
+ <el-table-column property="createTime$" label="鐢熸垚鏃堕棿">
+ </el-table-column>
+ <el-table-column property="modiTime$" label="鏇存柊鏃堕棿">
+ </el-table-column>
+ <el-table-column property="assignTime$" label="娲惧彂鏃堕棿">
+ </el-table-column>
+ <el-table-column property="executeTime$" label="鎵ц鏃堕棿">
+ </el-table-column>
+ <el-table-column property="completeTime$" label="瀹岀粨鏃堕棿">
+ </el-table-column>
+ <el-table-column property="cancelTime$" label="鍙栨秷鏃堕棿">
+ </el-table-column>
+ <el-table-column property="durationTime" label="鎸佺画鏃堕暱">
+ </el-table-column>
+ <el-table-column property="ioType$" label="浠诲姟绫诲瀷">
+ </el-table-column>
+ <el-table-column property="startPoint" label="璧风偣浣嶇疆">
+ </el-table-column>
+ <el-table-column property="targetPoint" label="缁堢偣浣嶇疆">
+ </el-table-column>
+ <el-table-column property="wrkSts$" label="宸ヤ綔鐘舵��">
+ </el-table-column>
+ <el-table-column property="crnNo" label="宸烽亾鍙�">
+ </el-table-column>
+ <el-table-column property="barcode" label="鏉$爜">
+ </el-table-column>
+ <el-table-column property="memo" label="澶囨敞">
+ </el-table-column>
+ </el-table>
- <div style="margin-top: 10px;">
- <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
- :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
- </el-pagination>
- </div>
- </el-card>
+ <div style="margin-top: 10px;">
+ <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+ :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
+ </el-pagination>
</div>
- </div>
- <script>
- var $layui = layui.config({
- base: baseUrl + "/static/wms/layui/lay/modules/"
- }).use(['layer', 'form'], function() {})
+ </el-card>
+ </div>
+</div>
+<script>
+ var $layui = layui.config({
+ base: baseUrl + "/static/wms/layui/lay/modules/"
+ }).use(['layer', 'form'], function() {})
- var app = new Vue({
- el: '#app',
- data: {
- tableData: [],
- currentPage: 1,
- pageSizes: [16, 30, 50, 100, 150, 200],
- pageSize: 16,
- pageTotal: 0,
- tableSearchParam: {
- task_no: null,
- status: null,
- wrk_no: null
- }
- },
- created() {
- this.init()
- },
- methods: {
- init() {
- let taskNo = getQueryVariable('taskNo')
- let wrkNo = getQueryVariable('wrkNo')
- if (taskNo != false) {
- this.tableSearchParam.task_no = taskNo
- }
- if (wrkNo != false) {
- this.tableSearchParam.wrk_no = wrkNo
- }
-
- this.getTableData()
- },
- getTableData() {
- let that = this;
- let data = this.tableSearchParam
- data.curr = this.currentPage
- data.limit = this.pageSize
- $.ajax({
- url: baseUrl + "/taskWrkLog/list/auth",
- headers: {
- 'token': localStorage.getItem('token')
- },
- data: data,
- dataType: 'json',
- contentType: 'application/json;charset=UTF-8',
- method: 'GET',
- success: function(res) {
- if (res.code == 200) {
- that.tableData = res.data.records
- that.pageTotal = res.data.total
- } else if (res.code === 403) {
- top.location.href = baseUrl + "/";
- } else {
- that.$message({
- message: res.msg,
- type: 'error'
- });
- }
- }
- });
- },
- handleSizeChange(val) {
- console.log(`姣忛〉 ${val} 鏉);
- this.pageSize = val
- this.getTableData()
- },
- handleCurrentChange(val) {
- console.log(`褰撳墠椤�: ${val}`);
- this.currentPage = val
- this.getTableData()
- },
- resetParam() {
- this.tableSearchParam = {
- task_no: null,
- status: null,
- wrk_no: null
- }
- this.getTableData()
- },
- handleCommand(command, row) {
- switch (command) {
- case "showCommand":
- //鏌ョ湅鎸囦护
- this.showCommand(row)
- break;
- }
- },
- showCommand(row) {
- let wrkNo = row.wrkNo == null ? "" : row.wrkNo
- //鏌ョ湅鎸囦护
- $layui.layer.open({
- type: 2,
- title: '鎸囦护绠$悊',
- maxmin: true,
- area: [top.detailWidth, top.detailHeight],
- shadeClose: true,
- content: 'commandManage.html?taskNo=' + row.taskNo + "&wrkNo=" + wrkNo,
- success: function(layero, index) {}
- });
- },
+ var app = new Vue({
+ el: '#app',
+ data: {
+ tableData: [],
+ tableDataAll: [],
+ currentPage: 1,
+ pageSizes: [16, 30, 50, 100, 150, 200],
+ pageSize: 16,
+ pageTotal: 0,
+ tableSearchParam: {
+ task_no: null,
+ status: null,
+ wrk_no: null
+ }
+ },
+ created() {
+ this.init()
+ },
+ methods: {
+ init() {
+ let taskNo = getQueryVariable('taskNo')
+ let wrkNo = getQueryVariable('wrkNo')
+ if (taskNo != false) {
+ this.tableSearchParam.task_no = taskNo
}
- })
- </script>
- </body>
+ if (wrkNo != false) {
+ this.tableSearchParam.wrk_no = wrkNo
+ }
+
+ this.getTableData()
+ },
+ getTableData() {
+ let that = this;
+ let data = this.tableSearchParam
+ data.curr = this.currentPage
+ data.limit = this.pageSize
+ $.ajax({
+ url: baseUrl + "/taskWrkLog/list/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: data,
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'GET',
+ success: function(res) {
+ if (res.code == 200) {
+ that.tableData = res.data.records
+ that.pageTotal = res.data.total
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ },
+ executeExportTable() {
+ // 1. 杩囨护鎿嶄綔鍒�
+ const exportData = this.tableData.map(item => {
+ const cloned = { ...item }
+ delete cloned.operation // 绉婚櫎鎿嶄綔鍒楀叧鑱斿瓧娈�
+ return cloned
+ })
+
+ // 2. 瀹屾暣瀛楁鏄犲皠
+ const headerMap = {
+ taskNo: '浠诲姟鍙�',
+ status: 'status',
+ wrkNo: '宸ヤ綔鍙�',
+ createTime: 'createTime',
+ ioType: 'ioType',
+ ioPri: '浼樺厛绾�',
+ startPoint: '璧风偣浣嶇疆',
+ targetPoint: '缁堢偣浣嶇疆',
+ modiUser: 'modiUser',
+ modiTime: 'modiTime',
+ memo: '澶囨敞',
+ barcode: '鏉$爜',
+ assignTime: 'assignTime',
+ executeTime: 'executeTime',
+ completeTime: 'completeTime',
+ cancelTime: 'cancelTime',
+ wrkSts: 'wrkSts',
+ crnNo: '鍫嗗灈鏈哄彿',
+ commandStep: 'step',
+ transferMark: 'mark',
+ wrkSts$: '宸ヤ綔鐘舵��',
+ ioType$: '浠诲姟绫诲瀷',
+ status$: '浠诲姟鐘舵��',
+ createTime$: '鐢熸垚鏃堕棿',
+ modiTime$: '鏇存柊鏃堕棿',
+ modiUser$: '鏇存柊浜哄憳',
+ completeTime$: '瀹岀粨鏃堕棿',
+ executeTime$: '鎵ц鏃堕棿',
+ assignTime$: '娲惧彂鏃堕棿',
+ cancelTime$: '鍙栨秷鏃堕棿'
+ // taskNo: '浠诲姟鍙�',
+ // status$: '浠诲姟鐘舵��',
+ // wrkNo: '宸ヤ綔鍙�',
+ // createTime$: '鐢熸垚鏃堕棿',
+ // modiTime$: '鏇存柊鏃堕棿',
+ // assignTime$: '娲惧彂鏃堕棿',
+ // executeTime$: '鎵ц鏃堕棿',
+ // completeTime$: '瀹岀粨鏃堕棿',
+ // cancelTime$: '鍙栨秷鏃堕棿',
+ // durationTime: '鎸佺画鏃堕暱',
+ // ioType$: '浠诲姟绫诲瀷',
+ // startPoint: '璧风偣浣嶇疆',
+ // targetPoint: '缁堢偣浣嶇疆',
+ // wrkSts$: '宸ヤ綔鐘舵��',
+ // crnNo: '鍫嗗灈鏈哄彿',
+ // barcode: '鏉$爜',
+ // memo: '澶囨敞'
+ }
+
+ // 3. 鍒涘缓宸ヤ綔琛�
+ const worksheet = XLSX.utils.json_to_sheet(exportData)
+
+ // 4. 鏇挎崲琛ㄥご涓轰腑鏂�
+ XLSX.utils.sheet_add_aoa(worksheet, [Object.values(headerMap)], { origin: 'A1' })
+
+ // 5. 鐢熸垚鏂囦欢鍚嶏紙甯︽棩鏈燂級
+ const fileName = `浠诲姟鍒楄〃_${new Date().toLocaleDateString().replace(/\//g, '-')}.xlsx`
+
+ // 6. 瀵煎嚭鏂囦欢
+ const workbook = XLSX.utils.book_new()
+ XLSX.utils.book_append_sheet(workbook, worksheet, '浠诲姟鏁版嵁')
+ XLSX.writeFile(workbook, fileName)
+ },
+ executeExportTableAll() {
+ let that = this;
+
+ $.ajax({
+ url: baseUrl + "/taskWrkLog/export/all/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'GET',
+ success: function(res) {
+ if (res.code == 200) {
+ that.tableDataAll = res.data.records
+ // 1. 杩囨护鎿嶄綔鍒�
+ const exportData = that.tableDataAll.map(item => {
+ const cloned = { ...item }
+ delete cloned.operation // 绉婚櫎鎿嶄綔鍒楀叧鑱斿瓧娈�
+ return cloned
+ })
+
+ // 2. 瀹屾暣瀛楁鏄犲皠
+ const headerMap = {
+ taskNo: '浠诲姟鍙�',
+ status: '浠诲姟鐘舵��',
+ wrkNo: '宸ヤ綔鍙�',
+ createTime: 'createTime',
+ ioType: 'ioType',
+ ioPri: '浼樺厛绾�',
+ startPoint: '璧风偣浣嶇疆',
+ targetPoint: '缁堢偣浣嶇疆',
+ modiUser: 'modiUser',
+ modiTime: 'modiTime',
+ memo: '澶囨敞',
+ barcode: '鏉$爜',
+ assignTime: 'assignTime',
+ executeTime: 'executeTime',
+ completeTime: 'completeTime',
+ cancelTime: 'cancelTime',
+ wrkSts: 'wrkSts',
+ crnNo: '鍫嗗灈鏈哄彿',
+ commandStep: 'step',
+ transferMark: 'mark',
+ wrkSts$: '宸ヤ綔鐘舵��',
+ ioType$: '浠诲姟绫诲瀷',
+ status$: '浠诲姟鐘舵��',
+ createTime$: '鐢熸垚鏃堕棿',
+ modiTime$: '鏇存柊鏃堕棿',
+ modiUser$: '鏇存柊浜哄憳',
+ completeTime$: '瀹岀粨鏃堕棿',
+ executeTime$: '鎵ц鏃堕棿',
+ assignTime$: '娲惧彂鏃堕棿',
+ cancelTime$: '鍙栨秷鏃堕棿'
+ }
+
+ // 3. 鍒涘缓宸ヤ綔琛�
+ const worksheet = XLSX.utils.json_to_sheet(exportData)
+
+ // 4. 鏇挎崲琛ㄥご涓轰腑鏂�
+ XLSX.utils.sheet_add_aoa(worksheet, [Object.values(headerMap)], { origin: 'A1' })
+
+ // 5. 鐢熸垚鏂囦欢鍚嶏紙甯︽棩鏈燂級
+ const fileName = `浠诲姟鍒楄〃_${new Date().toLocaleDateString().replace(/\//g, '-')}.xlsx`
+
+ // 6. 瀵煎嚭鏂囦欢
+ const workbook = XLSX.utils.book_new()
+ XLSX.utils.book_append_sheet(workbook, worksheet, '浠诲姟鏁版嵁')
+ XLSX.writeFile(workbook, fileName)
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ that.$message({
+ message: res.msg,
+ type: 'error'
+ });
+ }
+ }
+ });
+ },
+ handleSizeChange(val) {
+ console.log(`姣忛〉 ${val} 鏉);
+ this.pageSize = val
+ this.getTableData()
+ },
+ handleCurrentChange(val) {
+ console.log(`褰撳墠椤�: ${val}`);
+ this.currentPage = val
+ this.getTableData()
+ },
+ resetParam() {
+ this.tableSearchParam = {
+ task_no: null,
+ status: null,
+ wrk_no: null
+ }
+ this.getTableData()
+ },
+ exportTable() {
+ this.executeExportTable()
+ },
+ exportTableAll() {
+ this.executeExportTableAll()
+ },
+ handleCommand(command, row) {
+ switch (command) {
+ case "showCommand":
+ //鏌ョ湅鎸囦护
+ this.showCommand(row)
+ break;
+ }
+ },
+ showCommand(row) {
+ let wrkNo = row.wrkNo == null ? "" : row.wrkNo
+ //鏌ョ湅鎸囦护
+ $layui.layer.open({
+ type: 2,
+ title: '鎸囦护绠$悊',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: true,
+ content: 'commandManageLog.html?taskNo=' + row.taskNo + "&wrkNo=" + wrkNo,
+ success: function(layero, index) {}
+ });
+ },
+ }
+ })
+</script>
+</body>
</html>
--
Gitblit v1.9.1