From aa710969e00e9d7e56a276066a239f74d5c49310 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 31 三月 2026 21:47:07 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/wrkMastLog/wrkMastLog.js |  112 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 106 insertions(+), 6 deletions(-)

diff --git a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
index 1dd1f6c..dbab215 100644
--- a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
+++ b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -1345,20 +1345,20 @@
         },
         wrkSts: {
             label: '宸ヤ綔鐘舵��',
-            kind: 'foreign',
+            kind: 'enum',
             tableProp: 'wrkSts$',
             exportField: 'wrkSts$',
-            foreignQuery: 'basWrkStatus',
+            enumOptions: [],
             searchable: true,
             quickSearch: true,
             minWidth: 160
         },
         ioType: {
             label: '鍏ュ嚭搴撶被鍨�',
-            kind: 'foreign',
+            kind: 'enum',
             tableProp: 'ioType$',
             exportField: 'ioType$',
-            foreignQuery: 'basWrkIotype',
+            enumOptions: [],
             searchable: true,
             quickSearch: true,
             minWidth: 160
@@ -1385,10 +1385,18 @@
             minWidth: 90
         },
         sourceStaNo: {
-            label: '婧愮珯'
+            label: '婧愮珯',
+            kind: 'enum',
+            enumOptions: [],
+            searchable: true,
+            minWidth: 120
         },
         staNo: {
-            label: '鐩爣绔�'
+            label: '鐩爣绔�',
+            kind: 'enum',
+            enumOptions: [],
+            searchable: true,
+            minWidth: 120
         },
         sourceLocNo: {
             label: '婧愬簱浣�',
@@ -1416,6 +1424,7 @@
         },
         barcode: {
             label: '鏉$爜',
+            searchable: true,
             minWidth: 140
         },
         modiUser: {
@@ -1804,6 +1813,39 @@
         };
     }
 
+    function getFieldByName(fieldName) {
+        for (var i = 0; i < fieldMeta.length; i += 1) {
+            if (fieldMeta[i] && fieldMeta[i].field === fieldName) {
+                return fieldMeta[i];
+            }
+        }
+        return null;
+    }
+
+    function buildEnumOptions(records, valueField, labelField) {
+        var options = [];
+        var seen = {};
+        (records || []).forEach(function (item) {
+            if (!item) {
+                return;
+            }
+            var rawValue = item[valueField];
+            if (isEmptyValue(rawValue)) {
+                return;
+            }
+            var key = String(rawValue);
+            if (seen[key]) {
+                return;
+            }
+            seen[key] = true;
+            options.push({
+                rawValue: key,
+                label: isEmptyValue(item[labelField]) ? key : String(item[labelField])
+            });
+        });
+        return options;
+    }
+
     function handleForbidden(res) {
         if (res && res.code === 403) {
             top.location.href = baseUrl + '/';
@@ -1961,6 +2003,7 @@
                 }
             },
             created: function () {
+                this.loadSearchEnumOptions();
                 this.loadTable();
             },
             mounted: function () {
@@ -2038,6 +2081,63 @@
                     }
                     this.$set(this.searchForm, field.field, '');
                 },
+                loadSearchEnumOptions: function () {
+                    var self = this;
+                    [
+                        {
+                            field: 'wrkSts',
+                            url: baseUrl + '/basWrkStatus/list/auth',
+                            valueField: 'wrkSts',
+                            labelField: 'wrkDesc',
+                            limit: 200
+                        },
+                        {
+                            field: 'ioType',
+                            url: baseUrl + '/basWrkIotype/list/auth',
+                            valueField: 'ioType',
+                            labelField: 'ioDesc',
+                            limit: 200
+                        },
+                        {
+                            field: 'staNo',
+                            url: baseUrl + '/basStation/list/auth',
+                            valueField: 'stationId',
+                            labelField: 'stationId',
+                            limit: 500
+                        },
+                        {
+                            field: 'sourceStaNo',
+                            url: baseUrl + '/basStation/list/auth',
+                            valueField: 'stationId',
+                            labelField: 'stationId',
+                            limit: 500
+                        }
+                    ].forEach(function (config) {
+                        $.ajax({
+                            url: config.url,
+                            method: 'GET',
+                            headers: self.authHeaders(),
+                            data: {
+                                curr: 1,
+                                limit: config.limit
+                            },
+                            success: function (res) {
+                                if (self.handleForbidden(res)) {
+                                    return;
+                                }
+                                if (!res || res.code !== 200) {
+                                    return;
+                                }
+                                var payload = res.data || {};
+                                var field = getFieldByName(config.field);
+                                if (!field) {
+                                    return;
+                                }
+                                self.$set(field, 'enumOptions', buildEnumOptions(payload.records, config.valueField, config.labelField));
+                            }
+                        });
+                    });
+                },
                 buildQueryParams: function () {
                     var self = this;
                     var params = {

--
Gitblit v1.9.1