From 3eab4409e562a873d9bd7b047b3d0590901a6654 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 11 三月 2026 11:06:49 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/wrkMast/wrkMast.html |  830 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 413 insertions(+), 417 deletions(-)

diff --git a/src/main/webapp/views/wrkMast/wrkMast.html b/src/main/webapp/views/wrkMast/wrkMast.html
index 390505e..dcd8808 100644
--- a/src/main/webapp/views/wrkMast/wrkMast.html
+++ b/src/main/webapp/views/wrkMast/wrkMast.html
@@ -1,425 +1,421 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <title>浠诲姟绠$悊</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/vue/element/element.css">
+    <link rel="stylesheet" href="../../static/css/cool.css">
+    <style>
+        :root {
+            --card-bg: rgba(255, 255, 255, 0.94);
+            --card-border: rgba(216, 226, 238, 0.95);
+            --text-main: #243447;
+        }
 
-	<head>
-		<meta charset="UTF-8">
-		<title>浠诲姟绠$悊</title>
-		<link rel="stylesheet" href="../../static/vue/element/element.css">
-		<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
-		<script type="text/javascript" src="../../static/js/common.js?v=20260309_i18n_fix1"></script>
-		<script type="text/javascript" src="../../static/vue/js/vue.min.js"></script>
-		<script type="text/javascript" src="../../static/vue/element/element.js"></script>
-		<style>
-			[v-cloak] {
-				display: none;
-			}
-			.el-table .success-row {
-				background: #b6ff8e;
-			}
-		</style>
-	</head>
+        [v-cloak] {
+            display: none;
+        }
 
-	<body>
-		<div id="app" v-cloak 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.wrk_no" placeholder="宸ヤ綔鍙�"></el-input>
-						</el-form-item>
-						<el-form-item label="">
-							<el-input v-model="tableSearchParam.wms_wrk_no" placeholder="WMS宸ヤ綔鍙�"></el-input>
-						</el-form-item>
-						<el-form-item label="">
-							<el-input v-model="tableSearchParam.source_loc_no" placeholder="婧愬簱浣�"></el-input>
-						</el-form-item>
-						<el-form-item label="">
-							<el-input v-model="tableSearchParam.loc_no" placeholder="鐩爣搴撲綅"></el-input>
-						</el-form-item>
-						<el-form-item label="">
-							<el-input v-model="tableSearchParam.crn_no" placeholder="鍫嗗灈鏈�"></el-input>
-						</el-form-item>
-						<el-form-item label="">
-							<el-input v-model="tableSearchParam.dual_crn_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 property="wrkNo" label="宸ヤ綔鍙�">
-						</el-table-column>
-						<el-table-column property="wmsWrkNo" label="WMS浠诲姟鍙�">
-						</el-table-column>
-						<el-table-column property="wrkSts$" label="宸ヤ綔鐘舵��">
-						</el-table-column>
-						<el-table-column property="ioType$" label="浠诲姟绫诲瀷">
-						</el-table-column>
-						<el-table-column property="ioPri" label="浼樺厛绾�">
-						</el-table-column>
-						<el-table-column property="sourceStaNo" label="婧愮珯">
-						</el-table-column>
-						<el-table-column property="staNo" label="鐩爣绔�">
-						</el-table-column>
-						<el-table-column property="sourceLocNo" label="婧愬簱浣�">
-						</el-table-column>
-						<el-table-column property="locNo" label="鐩爣搴撲綅">
-						</el-table-column>
-						<el-table-column property="modiTime$" label="鏃堕棿">
-						</el-table-column>
-						<el-table-column property="barcode" label="鎵樼洏鐮�">
-						</el-table-column>
-						<el-table-column property="crnNo" label="鍫嗗灈鏈�">
-						</el-table-column>
-						<el-table-column property="dualCrnNo" label="鍙屽伐浣嶅爢鍨涙満">
-						</el-table-column>
-						<el-table-column property="batch" label="鎵规">
-						</el-table-column>
-						<el-table-column property="batchSeq" label="鎵规搴忓垪">
-						</el-table-column>
-						<el-table-column property="systemMsg" label="绯荤粺娑堟伅">
-						</el-table-column>
-						<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="change">淇敼</el-dropdown-item>-->
-										<el-dropdown-item command="complete">瀹屾垚</el-dropdown-item>
-										<el-dropdown-item command="cancel">鍙栨秷</el-dropdown-item>
-<!--										<el-dropdown-item command="shuttleCommand">绌挎杞︽寚浠�</el-dropdown-item>-->
-									</el-dropdown-menu>
-								</el-dropdown>
-							</template>
-						</el-table-column>
-					</el-table>
+        html,
+        body {
+            margin: 0;
+            min-height: 100%;
+            color: var(--text-main);
+            font-family: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
+            background:
+                radial-gradient(1000px 420px at 0% -10%, rgba(44, 107, 193, 0.12), transparent 56%),
+                radial-gradient(900px 400px at 100% 0%, rgba(28, 150, 126, 0.10), transparent 58%),
+                linear-gradient(180deg, #f2f6fb 0%, #f8fafc 100%);
+        }
 
-					<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>
+        .page-shell {
+            max-width: 1800px;
+            margin: 0 auto;
+            padding: 14px;
+            box-sizing: border-box;
+        }
 
-			<el-dialog :title="shuttleCommandTitle" :visible.sync="shuttleCommandVisible">
-				<el-table ref="singleTable" :data="shuttleCommandData.commands" style="width: 100%;" :row-class-name="tableRowClassName">
-					<el-table-column property="mode$" label="鍛戒护绫诲瀷">
-					</el-table-column>
-					<el-table-column property="start" label="璧风偣">
-						<template slot-scope="scope">
-							<div v-if="scope.row.nodes">
-								x:{{ scope.row.nodes[0].x }}
-								y:{{ scope.row.nodes[0].y }}
-								z:{{ scope.row.nodes[0].z }}
-							</div>
-						</template>
-					</el-table-column>
-					<el-table-column property="target" label="缁堢偣">
-						<template slot-scope="scope">
-							<div v-if="scope.row.nodes">
-								x:{{ scope.row.nodes[scope.row.nodes.length-1].x }}
-								y:{{ scope.row.nodes[scope.row.nodes.length-1].y }}
-								z:{{ scope.row.nodes[scope.row.nodes.length-1].z }}
-							</div>
-						</template>
-					</el-table-column>
-					<el-table-column property="taskNo" label="浠诲姟鍙�">
-					</el-table-column>
-					<el-table-column property="shuttleNo" label="绌挎杞�">
-					</el-table-column>
-					<el-table-column property="complete" label="鏄惁瀹屾垚">
-						<template slot-scope="scope">
-							<el-switch
-									v-model="scope.row.complete"
-									active-color="#13ce66"
-									@change="changeComplete(scope)">
-							</el-switch>
-						</template>
-					</el-table-column>
-					<el-table-column label="鎿嶄綔" width="100">
-						<template slot-scope="scope">
-							<el-button @click="shuttleCommandRollback(scope)" size="mini">鍥為��鎸囦护</el-button>
-						</template>
-					</el-table-column>
-				</el-table>
-				<div slot="footer" class="dialog-footer">
-					<el-button @click="shuttleCommandVisible = false">鍏抽棴</el-button>
-				</div>
-			</el-dialog>
+        .card-shell {
+            position: relative;
+            border-radius: 24px;
+            border: 1px solid var(--card-border);
+            background:
+                radial-gradient(760px 220px at -8% 0%, rgba(43, 117, 196, 0.05), transparent 55%),
+                radial-gradient(680px 200px at 108% 10%, rgba(24, 150, 129, 0.05), transparent 58%),
+                var(--card-bg);
+            box-shadow: 0 16px 32px rgba(44, 67, 96, 0.08);
+            overflow: hidden;
+        }
 
-		</div>
-		<script>
-			var app = new Vue({
-				el: '#app',
-				data: {
-					tableData: [],
-					currentPage: 1,
-					pageSizes: [16, 30, 50, 100, 150, 200],
-					pageSize: 30,
-					pageTotal: 0,
-					tableSearchParam: {
-						wrk_no: null,
-						wms_wrk_no: null,
-					},
-					shuttleCommandVisible: false,
-					shuttleCommandData: {
-						assignCommand: {
-							commands: []
-						},
-						commandStep: 0
-					},
-					shuttleCommandWrkNo: null,
-					shuttleCommandLabelWidth: '80px',
-					shuttleCommandTitle: ''
-				},
-				created() {
-					this.init()
-				},
-				methods: {
-					init() {
-						this.getTableData()
-					},
-					getTableData() {
-						let that = this;
-						let data = JSON.parse(JSON.stringify(this.tableSearchParam))
-						data.curr = this.currentPage
-						data.limit = this.pageSize
-						if (this.tableSearchParam.datetime != null) {
-							data.datetime = null
-							data.create_time = this.tableSearchParam.datetime[0] + " - " + this.tableSearchParam.datetime[1]
-						}
-						$.ajax({
-							url: baseUrl + "/wrkMast/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 "complete":
-								this.completeTask(row)
-								break;
-							case "cancel":
-								this.cancelTask(row)
-								break;
-							case "shuttleCommand":
-								this.showShuttleCommand(row.wrkNo)
-								break;
-						}
-					},
-					showShuttleCommand(wrkNo){
-						let that = this;
-						$.ajax({
-							url: baseUrl + "/shuttle/command/query",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							data: {
-								wrkNo: wrkNo
-							},
-							method: 'GET',
-							success: function(res) {
-								if (res.code == 200) {
-									console.log(res)
-									that.shuttleCommandVisible = true;
-									that.shuttleCommandData = res.data;
-									that.shuttleCommandWrkNo = wrkNo;
-								} else if (res.code === 403) {
-									top.location.href = baseUrl + "/";
-								} else {
-									that.$message({
-										message: res.msg,
-										type: 'error'
-									});
-								}
-							}
-						});
-					},
-					completeTask(row) {
-						let that = this
-						this.$confirm('纭畾瀹屾垚璇ヤ换鍔″悧锛�', '鎻愮ず', {
-							confirmButtonText: '纭畾',
-							cancelButtonText: '鍙栨秷',
-							type: 'warning'
-						}).then(() => {
-							$.ajax({
-								url: baseUrl + "/openapi/completeTask",
-								contentType: 'application/json',
-								headers: {
-									'token': localStorage.getItem('token')
-								},
-								data: JSON.stringify({
-									wrkNo: row.wrkNo,
-								}),
-								method: 'POST',
-								success: function(res) {
-									if (res.code == 200) {
-										that.$message({
-											message: "瀹屾垚鎴愬姛",
-											type: 'success'
-										});
-										that.getTableData()
-									} else if (res.code === 403) {
-										top.location.href = baseUrl + "/";
-									} else {
-										that.$message({
-											message: res.msg,
-											type: 'error'
-										});
-									}
-								}
-							});
-						}).catch(() => {
-							// this.$message({
-							// 	type: 'info',
-							// 	message: '宸插彇娑堝垹闄�'
-							// });
-						});
-					},
-					cancelTask(row) {
-						let that = this
-						this.$confirm('纭畾鍙栨秷璇ヤ换鍔″悧锛�', '鎻愮ず', {
-							confirmButtonText: '纭畾',
-							cancelButtonText: '鍙栨秷',
-							type: 'warning'
-						}).then(() => {
-							$.ajax({
-								url: baseUrl + "/openapi/cancelTask",
-								contentType: 'application/json',
-								headers: {
-									'token': localStorage.getItem('token')
-								},
-								data: JSON.stringify({
-									wrkNo: row.wrkNo,
-								}),
-								method: 'POST',
-								success: function(res) {
-									if (res.code == 200) {
-										that.$message({
-											message: "鍙栨秷鎴愬姛",
-											type: 'success'
-										});
-										that.getTableData()
-									} else if (res.code === 403) {
-										top.location.href = baseUrl + "/";
-									} else {
-										that.$message({
-											message: res.msg,
-											type: 'error'
-										});
-									}
-								}
-							});
-						}).catch(() => {
-							// this.$message({
-							// 	type: 'info',
-							// 	message: '宸插彇娑堝垹闄�'
-							// });
-						});
-					},
-					tableRowClassName({row, rowIndex}) {
-						if (rowIndex === this.shuttleCommandData.commandStep) {
-							return 'success-row';
-						}
-						return '';
-					},
-					shuttleCommandRollback(scope) {
-						let that = this;
-						let idx = scope.$index;
-						$.ajax({
-							url: baseUrl + "/shuttle/command/rollback",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							data: {
-								wrkNo: that.shuttleCommandWrkNo,
-								commandStep: idx
-							},
-							method: 'GET',
-							success: function(res) {
-								if (res.code == 200) {
-									that.showShuttleCommand(that.shuttleCommandWrkNo)
-								} else if (res.code === 403) {
-									top.location.href = baseUrl + "/";
-								} else {
-									that.$message({
-										message: res.msg,
-										type: 'error'
-									});
-								}
-							}
-						});
-					},
-					changeComplete(scope) {
-						let that = this;
-						let idx = scope.$index;
-						$.ajax({
-							url: baseUrl + "/shuttle/command/completeSwitch",
-							headers: {
-								'token': localStorage.getItem('token')
-							},
-							data: {
-								wrkNo: that.shuttleCommandWrkNo,
-								commandStep: idx,
-								complete: scope.row.complete ? 1 : 0
-							},
-							method: 'GET',
-							success: function(res) {
-								if (res.code == 200) {
-									that.showShuttleCommand(that.shuttleCommandWrkNo)
-								} else if (res.code === 403) {
-									top.location.href = baseUrl + "/";
-								} else {
-									that.$message({
-										message: res.msg,
-										type: 'error'
-									});
-								}
-							}
-						});
-					}
-				},
-			})
-		</script>
-	</body>
+        .list-toolbar {
+            padding: 12px 16px 10px;
+            border-bottom: 1px solid rgba(222, 230, 239, 0.92);
+        }
 
+        .toolbar-main {
+            display: flex;
+            align-items: flex-start;
+            justify-content: space-between;
+            gap: 8px;
+            flex-wrap: wrap;
+        }
+
+        .toolbar-left {
+            flex: 1 1 980px;
+            display: flex;
+            align-items: center;
+            gap: 8px;
+            flex-wrap: wrap;
+        }
+
+        .toolbar-search {
+            flex: 1 1 auto;
+            display: flex;
+            align-items: center;
+            gap: 8px;
+            flex-wrap: wrap;
+        }
+
+        .toolbar-search-item {
+            flex: 0 0 148px;
+            min-width: 148px;
+        }
+
+        .toolbar-search-item.keyword {
+            flex: 0 0 220px;
+            min-width: 220px;
+        }
+
+        .toolbar-query-actions,
+        .toolbar-ops {
+            display: flex;
+            gap: 8px;
+            flex-wrap: wrap;
+        }
+
+        .toolbar-ops {
+            justify-content: flex-end;
+        }
+
+        .list-toolbar .el-input__inner,
+        .advanced-panel .el-input__inner {
+            height: 32px;
+            line-height: 32px;
+        }
+
+        .list-toolbar .el-input__icon,
+        .advanced-panel .el-input__icon {
+            line-height: 32px;
+        }
+
+        .list-toolbar .el-button,
+        .advanced-panel .el-button {
+            padding: 8px 12px;
+            border-radius: 8px;
+        }
+
+        .advanced-panel {
+            padding: 10px 16px 12px;
+            border-bottom: 1px solid rgba(222, 230, 239, 0.92);
+            background: rgba(248, 251, 254, 0.78);
+        }
+
+        .advanced-grid {
+            display: grid;
+            grid-template-columns: repeat(4, minmax(0, 1fr));
+            gap: 8px;
+        }
+
+        .advanced-item {
+            min-width: 0;
+        }
+
+        .table-wrap {
+            padding: 10px 16px;
+        }
+
+        .table-shell {
+            border-radius: 20px;
+            overflow: hidden;
+            border: 1px solid rgba(217, 227, 238, 0.98);
+            background: rgba(255, 255, 255, 0.95);
+        }
+
+        .table-shell .el-table {
+            border-radius: 20px;
+            overflow: hidden;
+        }
+
+        .table-shell .el-table th {
+            background: #f7fafc;
+            color: #53677d;
+            font-weight: 700;
+        }
+
+        .table-shell .el-table .success-row > td {
+            background: rgba(101, 198, 141, 0.14);
+        }
+
+        .payload-cell {
+            display: inline-block;
+            max-width: 280px;
+            white-space: nowrap;
+            overflow: hidden;
+            text-overflow: ellipsis;
+        }
+
+        .pager-bar {
+            padding: 0 16px 16px;
+            display: flex;
+            align-items: center;
+            justify-content: flex-end;
+        }
+
+        .column-popover {
+            max-width: 320px;
+        }
+
+        .column-popover-head {
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            gap: 12px;
+            margin-bottom: 10px;
+            font-size: 13px;
+            font-weight: 700;
+            color: var(--text-main);
+        }
+
+        .column-list {
+            display: grid;
+            grid-template-columns: repeat(2, minmax(0, 1fr));
+            gap: 8px 10px;
+            max-height: 280px;
+            overflow: auto;
+            padding-right: 4px;
+        }
+
+        .row-action-trigger {
+            min-width: 72px;
+            display: inline-flex;
+            align-items: center;
+            justify-content: center;
+        }
+
+        @media (max-width: 1600px) {
+            .advanced-grid {
+                grid-template-columns: repeat(3, minmax(0, 1fr));
+            }
+        }
+
+        @media (max-width: 1280px) {
+            .advanced-grid {
+                grid-template-columns: repeat(2, minmax(0, 1fr));
+            }
+        }
+
+        @media (max-width: 900px) {
+            .page-shell {
+                padding: 10px;
+            }
+
+            .list-toolbar,
+            .advanced-panel,
+            .table-wrap,
+            .pager-bar {
+                padding-left: 12px;
+                padding-right: 12px;
+            }
+
+            .toolbar-search-item,
+            .toolbar-search-item.keyword {
+                flex: 1 1 100%;
+                min-width: 100%;
+            }
+
+            .advanced-grid {
+                grid-template-columns: 1fr;
+            }
+        }
+    </style>
+</head>
+<body>
+<div id="app" class="page-shell" v-cloak>
+    <section class="card-shell">
+        <div class="list-toolbar">
+            <div class="toolbar-main">
+                <div class="toolbar-left">
+                    <div class="toolbar-search">
+                        <div class="toolbar-search-item keyword">
+                            <el-input
+                                v-model.trim="searchForm.condition"
+                                clearable
+                                size="small"
+                                placeholder="璇疯緭鍏ュ叧閿瓧"
+                                @keyup.enter.native="handleSearch">
+                            </el-input>
+                        </div>
+                        <div class="toolbar-search-item">
+                            <el-input
+                                v-model.trim="searchForm.wrk_no"
+                                clearable
+                                size="small"
+                                placeholder="宸ヤ綔鍙�"
+                                @keyup.enter.native="handleSearch">
+                            </el-input>
+                        </div>
+                        <div class="toolbar-search-item">
+                            <el-input
+                                v-model.trim="searchForm.wms_wrk_no"
+                                clearable
+                                size="small"
+                                placeholder="WMS浠诲姟鍙�"
+                                @keyup.enter.native="handleSearch">
+                            </el-input>
+                        </div>
+                        <div class="toolbar-search-item">
+                            <el-input
+                                v-model.trim="searchForm.loc_no"
+                                clearable
+                                size="small"
+                                placeholder="鐩爣搴撲綅"
+                                @keyup.enter.native="handleSearch">
+                            </el-input>
+                        </div>
+                        <div class="toolbar-query-actions">
+                            <el-button size="small" type="primary" icon="el-icon-search" @click="handleSearch">鎼滅储</el-button>
+                            <el-button size="small" plain icon="el-icon-refresh-left" @click="handleReset">閲嶇疆</el-button>
+                            <el-button size="small" plain :icon="advancedVisible ? 'el-icon-arrow-up' : 'el-icon-arrow-down'" @click="toggleAdvanced">
+                                {{ advancedVisible ? '鏀惰捣' : '绛涢��' }}
+                            </el-button>
+                        </div>
+                    </div>
+                </div>
+                <div class="toolbar-ops">
+                    <el-popover
+                        v-model="columnPopoverVisible"
+                        placement="bottom-end"
+                        width="320"
+                        trigger="click"
+                        popper-class="column-popover">
+                        <div class="column-popover-head">
+                            <span>鍒楄缃�</span>
+                            <div>
+                                <el-button type="text" size="mini" @click="showAllColumns">鍏ㄩ��</el-button>
+                                <el-button type="text" size="mini" @click="resetColumns">閲嶇疆</el-button>
+                            </div>
+                        </div>
+                        <div class="column-list">
+                            <el-checkbox
+                                v-for="column in columnDefs"
+                                :key="'column-' + column.key"
+                                :value="isColumnVisible(column.key)"
+                                @change="toggleColumn(column.key, $event)">
+                                {{ column.label }}
+                            </el-checkbox>
+                        </div>
+                        <el-button slot="reference" size="small" plain icon="el-icon-setting">鍒楄缃�</el-button>
+                    </el-popover>
+                    <el-button size="small" plain icon="el-icon-refresh" :loading="loading" @click="loadList">鍒锋柊</el-button>
+                </div>
+            </div>
+        </div>
+
+        <div v-show="advancedVisible" class="advanced-panel">
+            <div class="advanced-grid">
+                <div class="advanced-item">
+                    <el-input
+                        v-model.trim="searchForm.source_loc_no"
+                        clearable
+                        size="small"
+                        placeholder="婧愬簱浣�"
+                        @keyup.enter.native="handleSearch">
+                    </el-input>
+                </div>
+                <div class="advanced-item">
+                    <el-input
+                        v-model.trim="searchForm.crn_no"
+                        clearable
+                        size="small"
+                        placeholder="鍫嗗灈鏈�"
+                        @keyup.enter.native="handleSearch">
+                    </el-input>
+                </div>
+                <div class="advanced-item">
+                    <el-input
+                        v-model.trim="searchForm.dual_crn_no"
+                        clearable
+                        size="small"
+                        placeholder="鍙屽伐浣嶅爢鍨涙満"
+                        @keyup.enter.native="handleSearch">
+                    </el-input>
+                </div>
+            </div>
+        </div>
+
+        <div class="table-wrap">
+            <div class="table-shell">
+                <el-table
+                    ref="dataTable"
+                    :key="tableRenderKey"
+                    v-loading="loading"
+                    :data="tableData"
+                    border
+                    stripe
+                    :height="tableHeight"
+                    @sort-change="handleSortChange">
+                    <el-table-column
+                        v-for="column in visibleColumns"
+                        :key="column.key"
+                        :prop="column.prop"
+                        :label="column.label"
+                        :width="column.width"
+                        :min-width="column.minWidth"
+                        :sortable="column.sortable ? 'custom' : false"
+                        :show-overflow-tooltip="column.showOverflow !== false"
+                        :align="column.align || 'left'">
+                        <template v-if="column.key === 'systemMsg'" slot-scope="scope">
+                            <span class="payload-cell">{{ scope.row.systemMsg || '--' }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="鎿嶄綔" fixed="right" width="100" align="center">
+                        <template slot-scope="scope">
+                            <el-dropdown trigger="click" @command="handleRowCommand($event, scope.row)">
+                                <el-button size="mini" plain class="row-action-trigger">
+                                    鎿嶄綔<i class="el-icon-arrow-down el-icon--right"></i>
+                                </el-button>
+                                <el-dropdown-menu slot="dropdown">
+                                    <el-dropdown-item command="complete">瀹屾垚浠诲姟</el-dropdown-item>
+                                    <el-dropdown-item command="cancel" divided>鍙栨秷浠诲姟</el-dropdown-item>
+                                </el-dropdown-menu>
+                            </el-dropdown>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </div>
+        </div>
+
+        <div class="pager-bar">
+            <el-pagination
+                background
+                :current-page="currentPage"
+                :page-size="pageSize"
+                :page-sizes="pageSizes"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="pageTotal"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange">
+            </el-pagination>
+        </div>
+    </section>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/common.js?v=20260309_i18n_fix1"></script>
+<script type="text/javascript" src="../../static/vue/js/vue.min.js"></script>
+<script type="text/javascript" src="../../static/vue/element/element.js"></script>
+<script type="text/javascript" src="../../static/js/wrkMast/wrkMast.js?v=20260311_wrk_mast_vue"></script>
 </html>

--
Gitblit v1.9.1