From 1c631b345aae30bb6aa7e9dc8d856a0f40d5f1e3 Mon Sep 17 00:00:00 2001
From: liulijun <liulijun@hnkhzn.com>
Date: 星期五, 20 三月 2026 10:49:08 +0800
Subject: [PATCH] 修复货位平面图锁定状态的显示

---
 项目代码/WMS/WMSClient/src/views/outbound/outSGOrder.vue |  595 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 347 insertions(+), 248 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue"
index 0e7cd71..b43a08a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue"
@@ -1,71 +1,227 @@
-
 <template>
-    <view-grid
-      ref="grid"
-      :columns="columns"
-      :detail="detail"
-      :editFormFields="editFormFields"
-      :editFormOptions="editFormOptions"
-      :searchFormFields="searchFormFields"
-      :searchFormOptions="searchFormOptions"
-      :table="table"
-      :extend="extend"
-    >
-    </view-grid>
-  </template>
-      <script>
-  import extend from "@/extension/outbound/outSGOrder.js";
-  import { ref, defineComponent } from "vue";
-  export default defineComponent({
-    setup() {
-      const table = ref({
-        key: "id",
-        footer: "Foots",
-        cnName: "鐢熺鎺掔▼鍗�",
-        name: "outSGOrder",
-        url: "/OutSGOrder/",
-        sortName: "id",
-      });
-      const editFormFields = ref({
-        boardMpsNo:""
-      });
-      const editFormOptions = ref([
-        [
-          {
-            field: "boardMpsNo",
-            title: "鍗曟嵁缂栧彿",
-            type: "string",
-            readonly:true
+  <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+    :table="table" :extend="extend">
+  </view-grid>
+</template>
+<script>
+import extend from "@/extension/outbound/outSGOrder.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "鐢熺鎺掔▼鍗�",
+      name: "outSGOrder",
+      url: "/OutSGOrder/",
+      sortName: "id",
+    });
+    const editFormFields = ref({
+      boardMpsNo: ""
+    });
+    const editFormOptions = ref([
+      [
+        {
+          field: "boardMpsNo",
+          title: "鍗曟嵁缂栧彿",
+          type: "string",
+          readonly: true
+        }
+      ],
+    ]);
+    const searchFormFields = ref({
+      outSGOrderNo: "",
+      boardMpsId: "",
+      orderId: "",
+      outSGOrderStatus: "",
+      warehouseId: "",
+      shortName: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "WMS鍗曞彿", field: "outSGOrderNo", type: "like" },
+        { title: "鍑哄簱涓婃父ID", field: "boardMpsId", type: "like" },
+        { title: "涓婃父鐢熶骇鍗曞彿", field: "orderId", type: "like" },
+        {
+          title: "鍗曟嵁鐘舵��",
+          field: "outSGOrderStatus",
+          type: "select",
+          dataKey: "outboundStatusEnum",
+          data: [],
+        },
+      ],
+      [
+        { title: "浠撳簱", field: "warehouseId", type: "selectList", dataKey: "warehouses", data: [], },
+        { title: "瀹㈡埛绠�绉�", field: "shortName", type: "like" },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "warehouseId",
+        title: "浠撳簱",
+        type: "string",
+        width: 90,
+        align: "left",
+        bind: { key: "warehouses", data: [] }
+      },
+      {
+        field: "outSGOrderNo",
+        title: "WMS鍗曞彿",
+        type: "string",
+        width: 160,
+        align: "left",
+        // link: true,
+      },
+      {
+        field: "boardMpsId",
+        title: "涓婃父鍗曟嵁ID",
+        type: "int",
+        width: 160,
+        align: "left",
+        // link: true,
+      },
+      {
+        field: "orderId",
+        title: "鎺掔▼鍙�",
+        type: "string",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "number",
+        title: "鐢ㄧ焊搴忓彿",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "shortName",
+        title: "瀹㈡埛绠�绉�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "outSGOrderStatus",
+        title: "鍑哄簱鍗曠姸鎬�",
+        type: "tag",
+        width: 110,
+        align: "left",
+        bind: { key: "outboundStatusEnum", data: [] },
+        getColor: (row) => {
+          const status = row.outSGOrderStatus;
+          if (status === 3) { // 缂烘枡
+            return 'danger'; // 绾㈣壊
+          } else if (status === 0) { // 鏈紑濮�
+            return 'success'; // 缁胯壊
+          } else if (status === 1) { // 鍑哄簱涓�
+            return 'primary'; // 钃濊壊
           }
-        ],
-      ]);
-      const searchFormFields = ref({
-        outSGOrderNo: "",
-        boardMpsId: "",
-        orderId: "",
-        outSGOrderStatus: "",
-        warehouseId: "",
-        shortName: "",
-      });
-      const searchFormOptions = ref([
-        [
-          { title: "WMS鍗曞彿", field: "outSGOrderNo", type: "like" },
-          { title: "鍑哄簱涓婃父ID", field: "boardMpsId", type: "like" },
-          { title: "涓婃父鐢熶骇鍗曞彿", field: "orderId", type: "like" },
-          {
-            title: "鍗曟嵁鐘舵��",
-            field: "outSGOrderStatus",
-            type: "select",
-            dataKey: "outboundStatusEnum",
-            data: [],
-          },
-        ],
-        [
-          { title: "浠撳簱", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],},
-          { title: "瀹㈡埛绠�绉�", field: "shortName", type: "like" },
-        ],
-      ]);
-      const columns = ref([
+          return ''; // 榛樿鏃犻鑹�
+        }
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "materialNos",
+        title: "鐗╂枡缂栧彿",
+        type: "string",
+        width: 160,
+        align: "left",
+        formatter: (row) => {
+          const materialNos = row.materialNos;
+          if (!materialNos) return materialNos;
+
+          // 澶勭悊鐗╂枡缂栧彿锛屾牴鎹瘡涓墿鏂欑殑瀹為檯鐘舵�佹樉绀洪鑹�
+          const materialList = materialNos.split('/');
+          let formattedMaterials = [];
+
+          // 濡傛灉鏈夌墿鏂欑己鏂欑姸鎬佸瓧绗︿覆锛屾牴鎹瘡涓墿鏂欑殑鐘舵�佹樉绀洪鑹�
+          if (row.materialLackStatus) {
+            // 瑙f瀽鐗╂枡缂烘枡鐘舵�佸瓧绗︿覆锛氱墿鏂欑紪鍙�:鐘舵��,鐗╂枡缂栧彿:鐘舵��
+            const statusPairs = row.materialLackStatus.split(',');
+            // 鑾峰彇鎵�鏈夌墿鏂欑殑缂烘枡鐘舵�佸垪琛紝淇濇寔鍘熷椤哄簭
+            const lackStatusList = statusPairs.map(pair => {
+              const [, isLack] = pair.split(':');
+              return isLack.trim() === 'true';
+            });
+
+            // 涓烘瘡涓墿鏂欑紪鍙疯缃鑹诧紝淇濇寔鍘熷椤哄簭
+            formattedMaterials = materialList.map((materialNo, index) => {
+              const trimmedMaterialNo = materialNo.trim();
+              const isLack = lackStatusList[index] || false;
+              if (isLack) {
+                return `<span style="color: red;">${trimmedMaterialNo}</span>`;
+              }
+              return trimmedMaterialNo;
+            });
+          } else {
+            // 濡傛灉娌℃湁鐗╂枡缂烘枡鐘舵�佷俊鎭紝浣跨敤璁㈠崟绾у埆鐨勭己鏂欑姸鎬�
+            const isLack = Boolean(row.isLackMaterial);
+            if (isLack) {
+              return `<span style="color: red;">${materialNos}</span>`;
+            }
+            formattedMaterials = materialList;
+          }
+
+          return formattedMaterials.join('/');
+        }
+      },
+      {
+        field: "materialWides",
+        title: "骞呭",
+        type: "string",
+        width: 100,
+        align: "left",
+        formatter: (row) => {
+          const value = row.materialWides;
+          if (value && typeof value === 'string') {
+            return value.replace(/\.\d+$/, '');
+          }
+          return value;
+        }
+      },
+      {
+        field: "boardFluteNos",
+        title: "妤炲埆",
+        type: "string",
+        width: 100,
+        align: "left"
+      },
+      {
+        field: "isLackMaterial",
+        title: "鏄惁缂烘枡",
+        type: "string",
+        width: 100,
+        align: "center",
+        formatter: (row) => {
+          const isLack = Boolean(row.isLackMaterial);
+          const text = isLack ? "鏄�" : "鍚�";
+          const bgColor = isLack ? '#ff4d4f' : '#52c41a';
+          return `<div style="background-color: ${bgColor}; color: #ffffff; text-align: center; font-weight: bold; width: 100%; height: 100%; padding: 10px 0; display: flex; justify-content: center; align-items: center;">${text}</div>`;
+        }
+      },
+    ]);
+    const detail = ref({
+      cnName: "鍑哄簱鏄庣粏鍗�",
+      table: "OutSGOrderDetail",
+      columns: [
         {
           field: "id",
           title: "Id",
@@ -77,50 +233,128 @@
           align: "left",
         },
         {
-          field: "warehouseId",
-          title: "浠撳簱",
+          field: "outSGOrderId",
+          title: "鍑哄簱鍗曚富閿�",
           type: "string",
           width: 90,
           align: "left",
-          bind:{key: "warehouses", data: []}
-        },
-        {
-          field: "outSGOrderNo",
-          title: "WMS鍗曞彿",
-          type: "string",
-          width: 160,
-          align: "left",
-          // link: true,
+          hidden: true,
         },
         {
           field: "boardMpsId",
-          title: "涓婃父鍗曟嵁ID",
-          type: "int",
-          width: 160,
-          align: "left",
-          // link: true,
-        },
-        {
-          field: "orderId",
-          title: "涓婃父鐢熶骇鍗曞彿",
-          type: "string",
-          width: 160,
-          align: "left",
-        },
-        {
-          field: "shortName",
-          title: "瀹㈡埛绠�绉�",
+          title: "鍏宠仈鐨勪富琛↖D(涓婃父)",
           type: "string",
           width: 90,
           align: "left",
         },
         {
-          field: "outSGOrderStatus",
-          title: "鍑哄簱鍗曠姸鎬�",
+          field: "boardMpsDetailId",
+          title: "鍏宠仈鏄庣粏ID(涓婃父)",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "materialNo",
+          title: "鐗╂枡缂栧彿",
+          type: "string",
+          width: 150,
+          align: "left",
+          edit: { type: "string" },
+          required: true,
+        },
+        {
+          field: "materielName",
+          title: "鐗╂枡鍚嶇О",
+          type: "string",
+          width: 150,
+          align: "left",
+          edit: { type: "string" },
+        },
+        {
+          field: "boardFluteNo",
+          title: "妤炲埆",
           type: "string",
           width: 110,
           align: "left",
+          edit: { type: "string" },
+        },
+        {
+          field: "machineName",
+          title: "鏈哄彴浣�",
+          type: "string",
+          width: 110,
+          align: "left",
+          edit: { type: "string" },
+          required: true,
+        },
+        {
+          field: "width",
+          title: "骞呭",
+          type: "string",
+          width: 110,
+          align: "left",
+          edit: { type: "string" },
+          required: true,
+
+        },
+        {
+          field: "xqLen",
+          title: "闇�姹傞暱搴�",
+          type: "string",
+          width: 110,
+          align: "left",
+          edit: { type: "number" },
+          required: true,
+        },
+        {
+          field: "totalUsage",
+          title: "鎬荤敤閲�",
+          type: "string",
+          width: 90,
+          align: "left",
+          edit: { type: "number" },
+          required: true,
+        },
+        {
+          field: "procurementLength",
+          title: "閲囪喘闀垮害",
+          type: "string",
+          width: 110,
+          align: "left",
+        },
+        {
+          field: "assignTotalUsage",
+          title: "宸插垎閰嶇敤閲�",
+          type: "string",
+          width: 110,
+          align: "left",
+        },
+        {
+          field: "outTotalUsage",
+          title: "宸插嚭鐢ㄩ噺",
+          type: "string",
+          width: 110,
+          align: "left",
+        },
+        {
+          field: "outSGOrderDetailStatus",
+          title: "璁㈠崟鏄庣粏鐘舵��",
+          type: "tag",
+          width: 180,
+          align: "left",
           bind: { key: "outboundStatusEnum", data: [] },
+          getColor: (row) => {
+            const status = row.outSGOrderDetailStatus;
+            if (status === 3) { // 缂烘枡
+              return 'danger'; // 绾㈣壊
+            } else if (status === 0) { // 鏈紑濮�
+              return 'success'; // 缁胯壊
+            } else if (status === 1) { // 鍑哄簱涓�
+              return 'primary'; // 钃濊壊
+            }
+            return ''; // 榛樿鏃犻鑹�
+          }
         },
         {
           field: "createDate",
@@ -128,156 +362,21 @@
           type: "datetime",
           width: 160,
           align: "left",
-        },
-      ]);
-      const detail = ref({
-        cnName: "鍑哄簱鏄庣粏鍗�",
-        table: "OutSGOrderDetail",
-        columns: [
-          {
-            field: "id",
-            title: "Id",
-            type: "int",
-            width: 90,
-            hidden: true,
-            readonly: true,
-            require: true,
-            align: "left",
-          },
-          {
-            field: "outSGOrderId",
-            title: "鍑哄簱鍗曚富閿�",
-            type: "string",
-            width: 90,
-            align: "left",
-            hidden: true,
-          },
-          {
-            field: "boardMpsId",
-            title: "鍏宠仈鐨勪富琛↖D(涓婃父)",
-            type: "string",
-            width: 90,
-            align: "left",
-          },
-          {
-            field: "boardMpsDetailId",
-            title: "鍏宠仈鏄庣粏ID(涓婃父)",
-            type: "string",
-            width: 90,
-            align: "left",
-          },
-          {
-            field: "materialNo",
-            title: "鐗╂枡缂栧彿",
-            type: "string",
-            width: 150,
-            align: "left",
-            edit: { type: "string" },
-            required: true,
-          },
-          {
-            field: "materielName",
-            title: "鐗╂枡鍚嶇О",
-            type: "string",
-            width: 150,
-            align: "left",
-            edit: { type: "string" },
-          },
-          {
-            field: "boardFluteNo",
-            title: "妤炲埆",
-            type: "string",
-            width: 110,
-            align: "left",
-            edit: { type: "string" },
-          },
-          {
-            field: "machineName",
-            title: "鏈哄彴浣�",
-            type: "string",
-            width: 110,
-            align: "left",
-            edit: { type: "string" },
-            required: true,
-          },
-          {
-            field: "width",
-            title: "骞呭",
-            type: "string",
-            width: 110,
-            align: "left",
-            edit: { type: "string" },
-            required: true,
-          },
-          {
-            field: "xqLen",
-            title: "闇�姹傞暱搴�",
-            type: "string",
-            width: 110,
-            align: "left",
-            edit: { type: "number" },
-            required: true,
-          },
-          {
-            field: "totalUsage",
-            title: "鎬荤敤閲�",
-            type: "string",
-            width: 90,
-            align: "left",
-            edit: { type: "number" },
-            required: true,
-          },
-          {
-            field: "procurementLength",
-            title: "閲囪喘闀垮害",
-            type: "string",
-            width: 110,
-            align: "left",
-          },
-          {
-            field: "assignTotalUsage",
-            title: "宸插垎閰嶇敤閲�",
-            type: "string",
-            width: 110,
-            align: "left",
-          },
-          {
-            field: "outTotalUsage",
-            title: "宸插嚭鐢ㄩ噺",
-            type: "string",
-            width: 110,
-            align: "left",
-          },
-          {
-            field: "outBSTOrderDetailStatus",
-            title: "璁㈠崟鏄庣粏鐘舵��",
-            type: "string",
-            width: 180,
-            align: "left",
-            bind: { key: "outboundStatusEnum", data: [] },
-          },
-          {
-            field: "createDate",
-            title: "鍒涘缓鏃堕棿",
-            type: "datetime",
-            width: 160,
-            align: "left",
-          }
-        ],
-        sortName: "id",
-        key: "id",
-      });
-      return {
-        table,
-        extend,
-        editFormFields,
-        editFormOptions,
-        searchFormFields,
-        searchFormOptions,
-        columns,
-        detail,
-      };
-    },
-  });
-  </script>
-      
\ No newline at end of file
+        }
+      ],
+      sortName: "id",
+      key: "id",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
\ No newline at end of file

--
Gitblit v1.9.3