From a49845f424ae5b1e43e391837a55c43ce07ea62d Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 01 四月 2026 15:02:47 +0800
Subject: [PATCH] #前端

---
 rsf-design/src/views/basic-info/loc/locTable.columns.js |  159 ++++++++++++++++-------------------------------------
 1 files changed, 48 insertions(+), 111 deletions(-)

diff --git a/rsf-design/src/views/basic-info/loc/locTable.columns.js b/rsf-design/src/views/basic-info/loc/locTable.columns.js
index aff5d2f..2ea0bcb 100644
--- a/rsf-design/src/views/basic-info/loc/locTable.columns.js
+++ b/rsf-design/src/views/basic-info/loc/locTable.columns.js
@@ -3,6 +3,39 @@
 import ArtButtonMore from '@/components/core/forms/art-button-more/index.vue'
 import { getLocStatusMeta, getLocUseStatusMeta } from './locPage.helpers'
 
+function createTextColumn(prop, label, minWidth, formatter) {
+  return {
+    prop,
+    label,
+    minWidth,
+    showOverflowTooltip: true,
+    formatter: formatter || ((row) => row[prop] || '--')
+  }
+}
+
+function createNumberColumn(prop, label, width) {
+  return {
+    prop,
+    label,
+    width,
+    align: 'center',
+    formatter: (row) => row[prop] ?? '--'
+  }
+}
+
+function createTagColumn(prop, label, width, resolveMeta) {
+  return {
+    prop,
+    label,
+    width,
+    align: 'center',
+    formatter: (row) => {
+      const statusMeta = resolveMeta(row)
+      return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text)
+    }
+  }
+}
+
 export function createLocTableColumns({
   handleView,
   handleEdit,
@@ -23,117 +56,21 @@
   return [
     { type: 'selection', width: 48, align: 'center' },
     { type: 'globalIndex', label: '搴忓彿', width: 72, align: 'center' },
-    {
-      prop: 'code',
-      label: '搴撲綅鍙�',
-      minWidth: 160,
-      showOverflowTooltip: true,
-      formatter: (row) => row.code || '--'
-    },
-    {
-      prop: 'warehouseName',
-      label: '浠撳簱',
-      minWidth: 150,
-      showOverflowTooltip: true,
-      formatter: (row) => row.warehouseName || row.warehouseId$ || '--'
-    },
-    {
-      prop: 'areaName',
-      label: '搴撳尯',
-      minWidth: 150,
-      showOverflowTooltip: true,
-      formatter: (row) => row.areaName || row.areaId$ || '--'
-    },
-    {
-      prop: 'typeIdsText',
-      label: '搴撲綅绫诲瀷',
-      minWidth: 180,
-      showOverflowTooltip: true,
-      formatter: (row) => row.typeIdsText || '--'
-    },
-    {
-      prop: 'row',
-      label: '鎺�',
-      width: 80,
-      align: 'center',
-      formatter: (row) => row.row ?? '--'
-    },
-    {
-      prop: 'col',
-      label: '鍒�',
-      width: 80,
-      align: 'center',
-      formatter: (row) => row.col ?? '--'
-    },
-    {
-      prop: 'lev',
-      label: '灞�',
-      width: 80,
-      align: 'center',
-      formatter: (row) => row.lev ?? '--'
-    },
-    {
-      prop: 'channel',
-      label: '宸烽亾',
-      width: 90,
-      align: 'center',
-      formatter: (row) => row.channel ?? '--'
-    },
-    {
-      prop: 'useStatus',
-      label: '浣跨敤鐘舵��',
-      width: 110,
-      align: 'center',
-      formatter: (row) => {
-        const statusMeta = getLocUseStatusMeta(row.useStatus)
-        return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text)
-      }
-    },
-    {
-      prop: 'flagLogicText',
-      label: '铏氭嫙搴撲綅',
-      width: 110,
-      align: 'center',
-      formatter: (row) => row.flagLogicText || '--'
-    },
-    {
-      prop: 'flagLabelMangeText',
-      label: '鏍囩绠$悊',
-      width: 110,
-      align: 'center',
-      formatter: (row) => row.flagLabelMangeText || '--'
-    },
-    {
-      prop: 'barcode',
-      label: '瀹瑰櫒缂栫爜',
-      minWidth: 150,
-      showOverflowTooltip: true,
-      formatter: (row) => row.barcode || '--'
-    },
-    {
-      prop: 'status',
-      label: '鐘舵��',
-      width: 100,
-      align: 'center',
-      formatter: (row) => {
-        const statusMeta = getLocStatusMeta(row.statusBool ?? row.status)
-        return h(ElTag, { type: statusMeta.type, effect: 'light' }, () => statusMeta.text)
-      }
-    },
-    {
-      prop: 'updateTimeText',
-      label: '鏇存柊鏃堕棿',
-      minWidth: 170,
-      showOverflowTooltip: true,
-      formatter: (row) => row.updateTimeText || row.updateTime$ || '--'
-    },
-    {
-      prop: 'memo',
-      label: '澶囨敞',
-      minWidth: 180,
-      showOverflowTooltip: true,
-      formatter: (row) => row.memo || '--'
-    },
+    createTextColumn('code', '搴撲綅鍙�', 160),
+    createTextColumn('warehouseName', '浠撳簱', 150, (row) => row.warehouseName || row.warehouseId$ || '--'),
+    createTextColumn('areaName', '搴撳尯', 150, (row) => row.areaName || row.areaId$ || '--'),
+    createTextColumn('typeIdsText', '搴撲綅绫诲瀷', 180),
+    createNumberColumn('row', '鎺�', 80),
+    createNumberColumn('col', '鍒�', 80),
+    createNumberColumn('lev', '灞�', 80),
+    createNumberColumn('channel', '宸烽亾', 90),
+    createTagColumn('useStatus', '浣跨敤鐘舵��', 110, (row) => getLocUseStatusMeta(row.useStatus)),
+    createTextColumn('flagLogicText', '铏氭嫙搴撲綅', 110),
+    createTextColumn('flagLabelMangeText', '鏍囩绠$悊', 110),
+    createTextColumn('barcode', '瀹瑰櫒缂栫爜', 150),
+    createTagColumn('status', '鐘舵��', 100, (row) => getLocStatusMeta(row.statusBool ?? row.status)),
+    createTextColumn('updateTimeText', '鏇存柊鏃堕棿', 170, (row) => row.updateTimeText || row.updateTime$ || '--'),
+    createTextColumn('memo', '澶囨敞', 180),
     {
       prop: 'operation',
       label: '鎿嶄綔',

--
Gitblit v1.9.1