From ad79ba405b2d1ac96423f88f4e8a76c584b9d38a Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 09 二月 2026 15:57:06 +0800
Subject: [PATCH] #
---
src/main/webapp/components/WatchCrnCard.js | 121 +++++++++++++++++++++++++++++-----------
1 files changed, 88 insertions(+), 33 deletions(-)
diff --git a/src/main/webapp/components/WatchCrnCard.js b/src/main/webapp/components/WatchCrnCard.js
index a394a6e..d760b97 100644
--- a/src/main/webapp/components/WatchCrnCard.js
+++ b/src/main/webapp/components/WatchCrnCard.js
@@ -5,7 +5,7 @@
<div style="width: 100%;">鍫嗗灈鏈虹洃鎺�</div>
<div style="width: 100%;text-align: right;display: flex;"><el-input size="mini" v-model="searchCrnNo" placeholder="璇疯緭鍏ュ爢鍨涙満鍙�"></el-input><el-button @click="getCrnStateInfo" size="mini">鏌ヨ</el-button></div>
</div>
- <div style="margin-bottom: 10px;">
+ <div style="margin-bottom: 10px;" v-if="!readOnly">
<div style="margin-bottom: 5px;">
<el-button v-if="showControl" @click="openControl" size="mini">鍏抽棴鎺у埗涓績</el-button>
<el-button v-else @click="openControl" size="mini">鎵撳紑鎺у埗涓績</el-button>
@@ -19,8 +19,9 @@
<div style="margin-bottom: 10px;"><el-button @click="controlCommandTaskComplete()" size="mini">浠诲姟瀹屾垚</el-button></div>
</div>
</div>
- <el-collapse v-model="activeNames">
- <el-collapse-item v-for="(item) in crnList" :name="item.crnNo">
+ <div style="max-height: 55vh; overflow:auto;">
+ <el-collapse v-model="activeNames" accordion>
+ <el-collapse-item v-for="(item) in displayCrnList" :name="item.crnNo">
<template slot="title">
<div style="width: 100%;display: flex;">
<div style="width: 50%;">{{ item.crnNo }}鍙峰爢鍨涙満</div>
@@ -52,14 +53,42 @@
<el-descriptions-item label="鍗囬檷璺濈(Km)">{{ item.ydistance }}</el-descriptions-item>
<el-descriptions-item label="璧拌鏃堕暱(H)">{{ item.xDuration }}</el-descriptions-item>
<el-descriptions-item label="鍗囬檷鏃堕暱(H)">{{ item.yduration }}</el-descriptions-item>
+ <el-descriptions-item label="绉伴噸鏁版嵁">{{ item.weight }}</el-descriptions-item>
+ <el-descriptions-item label="鏉$爜鏁版嵁">{{ item.barcode }}</el-descriptions-item>
<el-descriptions-item label="鏁呴殰浠g爜">{{ item.warnCode }}</el-descriptions-item>
<el-descriptions-item label="鏁呴殰鎻忚堪">{{ item.alarm }}</el-descriptions-item>
+ <el-descriptions-item label="鎵╁睍鏁版嵁">{{ item.extend }}</el-descriptions-item>
</el-descriptions>
- </el-collapse-item>
- </el-collapse>
+ </el-collapse-item>
+ </el-collapse>
+ </div>
+ <div style="display:flex; justify-content:flex-end; margin-top:8px;">
+ <el-pagination
+ @current-change="handlePageChange"
+ @size-change="handleSizeChange"
+ :current-page="currentPage"
+ :page-size="pageSize"
+ :page-sizes="[10,20,50,100]"
+ layout="total, prev, pager, next"
+ :total="crnList.length">
+ </el-pagination>
+ </div>
</div>
`,
- props: ["param"],
+ props: {
+ param: {
+ type: Object,
+ default: () => ({})
+ },
+ autoRefresh: {
+ type: Boolean,
+ default: true
+ },
+ readOnly: {
+ type: Boolean,
+ default: false
+ }
+ },
data() {
return {
crnList: [],
@@ -71,18 +100,38 @@
sourceLocNo: "",
targetLocNo: "",
},
+ pageSize: 25,
+ currentPage: 1,
+ timer: null
};
},
created() {
- setInterval(() => {
- this.getCrnStateInfo();
- }, 1000);
+ if (this.autoRefresh) {
+ this.timer = setInterval(() => {
+ this.getCrnStateInfo();
+ }, 1000);
+ }
+ },
+ beforeDestroy() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ }
+ },
+ computed: {
+ displayCrnList() {
+ const start = (this.currentPage - 1) * this.pageSize;
+ const end = start + this.pageSize;
+ return this.crnList.slice(start, end);
+ }
},
watch: {
param: {
handler(newVal, oldVal) {
- if (newVal.crnNo != 0) {
+ if (newVal && newVal.crnNo && newVal.crnNo != 0) {
this.activeNames = newVal.crnNo;
+ this.searchCrnNo = newVal.crnNo;
+ const idx = this.crnList.findIndex(i => i.crnNo == newVal.crnNo);
+ if (idx >= 0) { this.currentPage = Math.floor(idx / this.pageSize) + 1; }
}
},
deep: true, // 娣卞害鐩戝惉宓屽灞炴��
@@ -90,33 +139,39 @@
},
},
methods: {
+ handlePageChange(page) {
+ this.currentPage = page;
+ },
+ handleSizeChange(size) {
+ this.pageSize = size;
+ this.currentPage = 1;
+ },
getCrnStateInfo() {
+ if (this.$root.sendWs) {
+ this.$root.sendWs(JSON.stringify({
+ "url": "/crn/table/crn/state",
+ "data": {}
+ }));
+ }
+ },
+ setCrnList(res) {
let that = this;
- $.ajax({
- url: baseUrl + "/crn/table/crn/state",
- headers: {
- token: localStorage.getItem("token"),
- },
- method: "post",
- success: (res) => {
- // 鍫嗗灈鏈轰俊鎭〃鑾峰彇
- if (res.code == 200) {
- let list = res.data;
+ if (res.code == 200) {
+ let list = res.data;
- if (that.searchCrnNo == "") {
- that.crnList = list;
- } else {
- let tmp = [];
- list.forEach((item) => {
- if (item.crnNo == that.searchCrnNo) {
- tmp.push(item);
- }
- });
- that.crnList = tmp;
+ if (that.searchCrnNo == "") {
+ that.crnList = list;
+ } else {
+ let tmp = [];
+ list.forEach((item) => {
+ if (item.crnNo == that.searchCrnNo) {
+ tmp.push(item);
}
- }
- },
- });
+ });
+ that.crnList = tmp;
+ that.currentPage = 1;
+ }
+ }
},
openControl() {
this.showControl = !this.showControl;
--
Gitblit v1.9.1