From 89847f0c5a5d37e5a720afd32cdd7e4d9ead664b Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 13 四月 2026 08:15:47 +0800
Subject: [PATCH] #新的菜单接口

---
 rsf-design/src/views/basic-info/bas-station/basStationTable.columns.js |   94 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 64 insertions(+), 30 deletions(-)

diff --git a/rsf-design/src/views/basic-info/bas-station/basStationTable.columns.js b/rsf-design/src/views/basic-info/bas-station/basStationTable.columns.js
index 1fabdbc..0697d6a 100644
--- a/rsf-design/src/views/basic-info/bas-station/basStationTable.columns.js
+++ b/rsf-design/src/views/basic-info/bas-station/basStationTable.columns.js
@@ -1,6 +1,8 @@
 import { h } from 'vue'
 import { ElTag } from 'element-plus'
 import ArtButtonMore from '@/components/core/forms/art-button-more/index.vue'
+import { $t } from '@/locales'
+import BasStationTagCell from './modules/bas-station-tag-cell.vue'
 import {
   getBasStationUseStatusMeta,
   getBasStationStatusMeta,
@@ -9,41 +11,51 @@
 
 export function createBasStationTableColumns({
   handleView,
+  handleCopy,
   handleEdit,
   handleDelete,
   canEdit = true,
   canDelete = true
 } = {}) {
-  const operations = [{ key: 'view', label: '璇︽儏', icon: 'ri:eye-line' }]
+  const operations = [{ key: 'view', label: $t('common.actions.detail'), icon: 'ri:eye-line' }]
+
+  if (handleCopy) {
+    operations.push({ key: 'copy', label: '澶嶅埗鍒濆鍖�', icon: 'ri:file-copy-line' })
+  }
 
   if (canEdit && handleEdit) {
-    operations.push({ key: 'edit', label: '缂栬緫', icon: 'ri:pencil-line' })
+    operations.push({ key: 'edit', label: $t('common.actions.edit'), icon: 'ri:pencil-line' })
   }
 
   if (canDelete && handleDelete) {
-    operations.push({ key: 'delete', label: '鍒犻櫎', icon: 'ri:delete-bin-5-line', color: 'var(--art-error)' })
+    operations.push({
+      key: 'delete',
+      label: $t('common.actions.delete'),
+      icon: 'ri:delete-bin-5-line',
+      color: 'var(--art-error)'
+    })
   }
 
   return [
     { type: 'selection', width: 48, align: 'center' },
-    { type: 'globalIndex', label: '搴忓彿', width: 72, align: 'center' },
+    { type: 'globalIndex', label: $t('table.index'), width: 72, align: 'center' },
     {
       prop: 'stationName',
-      label: '绔欑偣缂栫爜',
+      label: $t('pages.basicInfo.basStation.table.stationCode'),
       minWidth: 160,
       showOverflowTooltip: true,
       formatter: (row) => row.stationName || '--'
     },
     {
       prop: 'stationId',
-      label: '绔欑偣鍚嶇О',
+      label: $t('pages.basicInfo.basStation.table.stationName'),
       minWidth: 170,
       showOverflowTooltip: true,
       formatter: (row) => row.stationId || '--'
     },
     {
       prop: 'typeText',
-      label: '绔欑偣绫诲瀷',
+      label: $t('pages.basicInfo.basStation.table.type'),
       width: 110,
       align: 'center',
       formatter: (row) => {
@@ -53,7 +65,7 @@
     },
     {
       prop: 'useStatusText',
-      label: '浣跨敤鐘舵��',
+      label: $t('pages.basicInfo.basStation.table.useStatus'),
       width: 110,
       align: 'center',
       formatter: (row) => {
@@ -63,70 +75,76 @@
     },
     {
       prop: 'areaText',
-      label: '鎵�灞炲簱鍖�',
+      label: $t('pages.basicInfo.basStation.table.area'),
       minWidth: 150,
       showOverflowTooltip: true,
       formatter: (row) => row.areaText || row.area$ || '--'
     },
     {
-      prop: 'crossZoneAreaText',
-      label: '鍙法鍖哄簱鍖�',
+      prop: 'crossZoneAreaItems',
+      label: $t('pages.basicInfo.basStation.table.crossZoneArea'),
       minWidth: 220,
-      showOverflowTooltip: true,
-      formatter: (row) => row.crossZoneAreaText || '--'
+      formatter: (row) =>
+        h(BasStationTagCell, {
+          items: row.crossZoneAreaItems || [],
+          title: '鍙法鍖哄簱鍖�'
+        })
     },
     {
-      prop: 'containerTypesText',
-      label: '鍙叆瀹瑰櫒绫诲瀷',
+      prop: 'containerTypeItems',
+      label: $t('pages.basicInfo.basStation.table.containerTypes'),
       minWidth: 200,
-      showOverflowTooltip: true,
-      formatter: (row) => row.containerTypesText || '--'
+      formatter: (row) =>
+        h(BasStationTagCell, {
+          items: row.containerTypeItems || [],
+          title: '鍙叆瀹瑰櫒绫诲瀷'
+        })
     },
     {
       prop: 'barcode',
-      label: '鏉$爜',
+      label: $t('pages.basicInfo.basStation.table.barcode'),
       minWidth: 150,
       showOverflowTooltip: true,
       formatter: (row) => row.barcode || '--'
     },
     {
       prop: 'inAbleText',
-      label: '鍙叆',
+      label: $t('pages.basicInfo.basStation.table.inAble'),
       width: 90,
       align: 'center',
       formatter: (row) => row.inAbleText || '--'
     },
     {
       prop: 'outAbleText',
-      label: '鍙嚭',
+      label: $t('pages.basicInfo.basStation.table.outAble'),
       width: 90,
       align: 'center',
       formatter: (row) => row.outAbleText || '--'
     },
     {
       prop: 'isCrossZoneText',
-      label: '鏄惁璺ㄥ尯',
+      label: $t('pages.basicInfo.basStation.table.isCrossZone'),
       width: 100,
       align: 'center',
       formatter: (row) => row.isCrossZoneText || '--'
     },
     {
       prop: 'isWcsText',
-      label: '鏄惁WCS',
+      label: $t('pages.basicInfo.basStation.table.isWcs'),
       width: 100,
       align: 'center',
       formatter: (row) => row.isWcsText || '--'
     },
     {
       prop: 'autoTransferText',
-      label: '鑷姩璋冩嫧',
+      label: $t('pages.basicInfo.basStation.table.autoTransfer'),
       width: 100,
       align: 'center',
       formatter: (row) => row.autoTransferText || '--'
     },
     {
       prop: 'status',
-      label: '鐘舵��',
+      label: $t('table.status'),
       width: 100,
       align: 'center',
       formatter: (row) => {
@@ -136,35 +154,51 @@
     },
     {
       prop: 'updateByText',
-      label: '鏇存柊浜�',
+      label: $t('table.updateBy'),
       minWidth: 120,
       showOverflowTooltip: true,
       formatter: (row) => row.updateByText || row.updateBy$ || '--'
     },
     {
       prop: 'updateTimeText',
-      label: '鏇存柊鏃堕棿',
+      label: $t('table.updateTime'),
       minWidth: 170,
       showOverflowTooltip: true,
       formatter: (row) => row.updateTimeText || row.updateTime$ || '--'
     },
     {
+      prop: 'createByText',
+      label: $t('table.createBy'),
+      minWidth: 120,
+      showOverflowTooltip: true,
+      formatter: (row) => row.createByText || row.createBy$ || '--'
+    },
+    {
+      prop: 'createTimeText',
+      label: $t('table.createTime'),
+      minWidth: 170,
+      showOverflowTooltip: true,
+      formatter: (row) => row.createTimeText || row.createTime$ || '--'
+    },
+    {
       prop: 'memo',
-      label: '澶囨敞',
+      label: $t('table.remark'),
       minWidth: 180,
       showOverflowTooltip: true,
       formatter: (row) => row.memo || '--'
     },
     {
       prop: 'operation',
-      label: '鎿嶄綔',
-      width: 160,
-      align: 'right',
+      label: $t('table.operation'),
+      width: 120,
+      align: 'center',
+      fixed: 'right',
       formatter: (row) =>
         h(ArtButtonMore, {
           list: operations,
           onClick: (item) => {
             if (item.key === 'view') handleView?.(row)
+            if (item.key === 'copy') handleCopy?.(row)
             if (item.key === 'edit') handleEdit?.(row)
             if (item.key === 'delete') handleDelete?.(row)
           }

--
Gitblit v1.9.1