From 7a2d8e315a666655616644bf015cb8297f5f8b17 Mon Sep 17 00:00:00 2001
From: NNowhZzU <1539353356@qq.com>
Date: 星期二, 02 一月 2024 11:41:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 north-glass-erp/northglass-erp/src/router/index.js                                     |   18 +
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue       |    6 
 /dev/null                                                                              |   40 --
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue         |  223 ++++++++++++++
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue    |   48 +-
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue    |   11 
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TransferRecord.vue        |  202 +++++++++++++
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue |   40 ++
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ReworkRecord.vue          |  231 +++++++++++++++
 north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue    |   46 ++
 10 files changed, 775 insertions(+), 90 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/router/index.js b/north-glass-erp/northglass-erp/src/router/index.js
index 7935ed0..52f9ba3 100644
--- a/north-glass-erp/northglass-erp/src/router/index.js
+++ b/north-glass-erp/northglass-erp/src/router/index.js
@@ -571,6 +571,24 @@
               name: 'finishedProductRework',
               component:()=>import('../views/mm/mainProductStock/FinishedProductRework.vue'),
             },
+            {
+              // 璋冩嫧璁板綍
+              path: 'transferRecord',
+              name: 'transferRecord',
+              component:()=>import('../views/mm/mainProductStock/TransferRecord.vue'),
+            },
+            {
+              // 棰嗗嚭璁板綍
+              path: 'takeOutRecord',
+              name: 'takeOutRecord',
+              component:()=>import('../views/mm/mainProductStock/TakeOutRecord.vue'),
+            },
+            {
+              // 杩斿伐璁板綍
+              path: 'reworkRecord',
+              name: 'reworkRecord',
+              component:()=>import('../views/mm/mainProductStock/ReworkRecord.vue'),
+            },
 
             {
               path: '',
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
index fed6891..8a7f575 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
@@ -1,6 +1,6 @@
 <script setup>
 
-import {reactive} from "vue";
+import {reactive, ref} from "vue";
 import {useRouter} from  'vue-router'
 let router=useRouter()
 const getTableRow = (row,type) =>{
@@ -194,19 +194,14 @@
   }
 
 })
-
+const  xGrid = ref();
 const gridEvents = {
   toolbarButtonClick ({ code }) {
     const $grid = xGrid.value
     if ($grid) {
       switch (code) {
         case 'add': {
-
-          router.push({path: '/main/trader/CreateTrader'})
-          /*if($grid.getCheckboxRecords().length==0){
-            VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }*/
+          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
           return;
         }
 
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
index 42f7a37..a47bc52 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedGoodsIssue.vue
@@ -3,7 +3,7 @@
 
 <script setup>
 
-import {reactive} from "vue";
+import {reactive, ref} from "vue";
 import {useRouter} from  'vue-router'
 let router=useRouter()
 const getTableRow = (row,type) =>{
@@ -24,36 +24,33 @@
     // }
   }
 }
+const  xGrid = ref();
 const gridEvents = {
-  toolbarButtonClick ({ code }) {
+  toolbarButtonClick({ code }) {
     const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'add': {
-
-          router.push({path: '/main/trader/CreateTrader'})
-          /*if($grid.getCheckboxRecords().length==0){
-            VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
-            return
-          }*/
-          return;
-        }
-
-      }
-    }
-  },
-  toolbarToolClick ({ code }) {
-    const $grid = xGrid.value
-    if ($grid) {
-      switch (code) {
-        case 'myPrint': {
-          $grid.print()
+    if($grid){
+      switch (code){
+        case 'verify':{
+          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+          // router.push({path: '/main/productStock/OrderAllocation'});
+          // return;
           break
+        }
+        case 'out':{
+          router.push({path: '/main/productStock/TakeOutRecord'});
+          return;
+          break;
+        }
+        case 'rework':{
+          router.push({path: '/main/productStock/FinishedProductRework'});
+          return;
+          break;
         }
       }
     }
   },
 }
+
 
 
 
@@ -113,9 +110,10 @@
   toolbarConfig: {
     buttons: [{
       'name': '纭棰嗗嚭',
+      'code': 'verify',
       status: 'primary'
     },{
-      'name': '棰嗗嚭璁板綍',
+      'name': '棰嗗嚭璁板綍','code':'out',
     }],
     import: false,
     export: true,
@@ -206,7 +204,7 @@
         class="mytable-scrollbar"
         ref="xGrid"
         v-bind="gridOptions"
-
+        v-on="gridEvents"
     >
       <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
       <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
index f192b1d..8ea5570 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
@@ -1,6 +1,6 @@
 <script setup>
 
-import {reactive} from "vue";
+import {reactive, ref} from "vue";
 import {useRouter} from  'vue-router'
 let router=useRouter()
 const getTableRow = (row,type) =>{
@@ -18,6 +18,33 @@
       //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
       router.push({path: '/main/productStock/FinishedGoodsIssue', query: { id: row.id }})
       break
+    }
+  }
+}
+
+const  xGrid = ref();
+const gridEvents = {
+  toolbarButtonClick({ code }) {
+    const $grid = xGrid.value
+    if($grid){
+      switch (code){
+        case 'ver':{
+          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+          // router.push({path: '/main/productStock/OrderAllocation'});
+          // return;
+          break
+        }
+        case 'record':{
+          router.push({path: '/main/productStock/TransferRecord'});
+          return;
+          break;
+        }
+        case 'rework':{
+          router.push({path: '/main/productStock/FinishedProductRework'});
+          return;
+          break;
+        }
+      }
     }
   }
 }
@@ -83,7 +110,8 @@
   toolbarConfig: {
     buttons: [{
       'name': '纭鍑哄簱',
-      status: 'primary'
+      status: 'primary',
+      'code':'ver'
     }],
     import: false,
     export: true,
@@ -103,7 +131,7 @@
       "OrderQuantity": "7",
       "Length": "1230.00",
       "Width": "1075.00",
-      "Thickness": "6銆�700",
+      "Thickness": "6.700",
       "TotalQuantity": "100.00",
       "TotalArea": "360.80",
       "BoxNumber": "06",
@@ -124,7 +152,7 @@
       "OrderQuantity": "7",
       "Length": "1230.00",
       "Width": "1075.00",
-      "Thickness": "6銆�700",
+      "Thickness": "6.700",
       "TotalQuantity": "100.00",
       "TotalArea": "360.80",
       "BoxNumber": "06",
@@ -145,7 +173,7 @@
       "OrderQuantity": "7",
       "Length": "1230.00",
       "Width": "1075.00",
-      "Thickness": "6銆�700",
+      "Thickness": "6.700",
       "TotalQuantity": "100.00",
       "TotalArea": "360.80",
       "BoxNumber": "06",
@@ -166,7 +194,7 @@
       "OrderQuantity": "7",
       "Length": "1230.00",
       "Width": "1075.00",
-      "Thickness": "6銆�700",
+      "Thickness": "6.700",
       "TotalQuantity": "100.00",
       "TotalArea": "360.80",
       "BoxNumber": "06",
@@ -187,7 +215,7 @@
       "OrderQuantity": "7",
       "Length": "1230.00",
       "Width": "1075.00",
-      "Thickness": "6銆�700",
+      "Thickness": "6.700",
       "TotalQuantity": "100.00",
       "TotalArea": "360.80",
       "BoxNumber": "06",
@@ -208,7 +236,7 @@
       "OrderQuantity": "7",
       "Length": "1230.00",
       "Width": "1075.00",
-      "Thickness": "6銆�700",
+      "Thickness": "6.700",
       "TotalQuantity": "100.00",
       "TotalArea": "360.80",
       "BoxNumber": "06",
@@ -249,7 +277,7 @@
         class="mytable-scrollbar"
         ref="xGrid"
         v-bind="gridOptions"
-
+        v-on="gridEvents"
     >
       <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
       <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue
index bf6222e..6450da7 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductRework.vue
@@ -4,7 +4,7 @@
 
 <script setup>
 
-import {reactive} from "vue";
+import {reactive, ref} from "vue";
 import {useRouter} from  'vue-router'
 let router=useRouter()
 const getTableRow = (row,type) =>{
@@ -24,6 +24,32 @@
       break
     }
   }
+}
+const  xGrid = ref();
+const gridEvents = {
+  toolbarButtonClick({ code }) {
+    const $grid = xGrid.value
+    if($grid){
+      switch (code){
+        case 'ver':{
+          alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+          // router.push({path: '/main/productStock/OrderAllocation'});
+          // return;
+          break
+        }
+        case 'record':{
+          router.push({path: '/main/productStock/ReworkRecord'});
+          return;
+          break;
+        }
+        case 'rework':{
+          router.push({path: '/main/productStock/FinishedProductRework'});
+          return;
+          break;
+        }
+      }
+    }
+  },
 }
 
 
@@ -82,9 +108,13 @@
   ],//琛ㄥご鎸夐挳
   toolbarConfig: {
     buttons: [{
-      'name': '杩斿伐纭',status: 'primary'
-    },{
-      'name': '杩斿伐璁板綍'
+      'name': '杩斿伐纭',
+      status: 'primary',
+      'code':'ver'
+    },
+      {
+      'name': '杩斿伐璁板綍',
+        'code':'record'
     }],
     import: false,
     export: true,
@@ -175,7 +205,7 @@
         class="mytable-scrollbar"
         ref="xGrid"
         v-bind="gridOptions"
-
+        v-on="gridEvents"
     >
       <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
       <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue
index b41aab4..8d38fb8 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocation.vue
@@ -85,7 +85,7 @@
   toolbarConfig: {
     buttons: [
         {'name': '纭璋冩嫧',status: 'primary','code':'edit'},
-        {'name': '璋冩嫧璁板綍'}
+        {'name': '璋冩嫧璁板綍','code':'record'}
     ],
     import: false,
     export: true,
@@ -179,8 +179,8 @@
           // return;
           break
         }
-        case 'out':{
-          router.push({path: '/main/productStock/FinishedGoodsIssue'});
+        case 'record':{
+          router.push({path: '/main/productStock/TransferRecord'});
           return;
           break;
         }
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocationUpdate.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocationUpdate.vue
deleted file mode 100644
index b76d7a7..0000000
--- a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/OrderAllocationUpdate.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-<template>
-  <div>
-    <h2>缂栬緫椤甸潰</h2>
-    <form @submit.prevent="handleSubmit">
-      <!-- 鏍规嵁闇�瑕佸睍绀鸿緭鍏ユ鎴栧叾浠栬〃鍗曠粍浠� -->
-      <label>閿�鍞崟鍙�</label>
-      <input v-model="rowData.閿�鍞崟鍙�" />
-
-      <!-- 鍏朵粬瀛楁鐪佺暐 -->
-
-      <button type="submit">纭畾</button>
-    </form>
-  </div>
-</template>
-
-<script
-import { ref } from 'vue';
-import { useRoute, useRouter } from 'vue-router';
-
-export default {
-  setup() {
-    const route = useRoute();
-    const router = useRouter();
-
-    const rowData = ref(JSON.parse(route.query.rowData));
-
-    const handleSubmit = () => {
-      // 澶勭悊缂栬緫瀹屾垚鍚庣殑閫昏緫锛屾瘮濡備繚瀛樻暟鎹瓑
-
-      // 杩斿洖涓婚〉闈�
-      router.push('/OrderAllocation.vue');
-    };
-
-    return {
-      rowData,
-      handleSubmit
-    };
-  }
-};
-</script>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ReworkRecord.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ReworkRecord.vue
new file mode 100644
index 0000000..20a9b41
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/ReworkRecord.vue
@@ -0,0 +1,231 @@
+<!-- 棰嗗嚭璁板綍  -->
+<script setup>
+
+import {reactive} from "vue";
+import {useRouter} from  'vue-router'
+let router=useRouter()
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+
+
+//瀛愮粍浠舵帴鏀跺弬鏁�
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },//琛ㄥご鍙傛暟
+  columns:[
+    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
+    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
+    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
+    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
+    {field: 'id', width:'150', title: '棰嗗嚭鍗曞彿', sortable: true,},
+    {field: 'MaterialCode', width: '150',title: '璁㈠崟鍙�', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'Code', width: '150',title: '搴忓彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'MaterialName', width: '120',title: '琛ョ墖鍗曞彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'Origin', width: '100',title: '宸ュ簭', sortable: true},
+    {field: 'InventoryNumber',width: '100', title: '娆$牬鍘熷洜', sortable: true,showOverflow:"ellipsis"},
+    {field: 'Thickness', width: '80',title: '閫�璐у崟鍙�', sortable: true},
+    {field: 'MainUnit',width: '100', title: '瀹屽伐鏁伴噺', sortable: true},
+    {field: 'RecordNum',width: '100', title: '杩斿伐鏁伴噺', sortable: true},
+    {field: 'ProductNum',width: '100', title: '浜у搧缂栧彿', sortable: true},
+    {field: 'ProductName',width: '100', title: '浜у搧鍚嶇О', sortable: true},
+    {field: 'Height', width: '100',title: '闀�', sortable: true},
+    {field: 'Width',width: '100', title: '瀹�', sortable: true},
+    {field: 'status', width: '80',title: '瀹℃牳鐘舵��', sortable: true},
+    {field: 'ZhiDanRen', width: '80',title: '鍒跺崟浜�', sortable: true},
+    {field: 'SafetyStock', width: '100',title: '鍒跺崟鏃ユ湡', sortable: true},
+    {field: 'Auditor', width: '100',title: '瀹℃牳浜�', sortable: true},
+    {field: 'AuditorDate', width: '100',title: '瀹℃牳鏃ユ湡', sortable: true},
+  ],//琛ㄥご鎸夐挳
+  toolbarConfig: {
+    // buttons: [{
+    //   'name': '鏂板'
+    // }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true
+  },
+  data:  [
+    {
+      "id": "LC23123011",
+      "MaterialCode": "NG23060212",
+      "Code": "1",
+      "MaterialName": "11鏈�29閫�璐т紬鑷�",
+      "Origin": "鏅洪暅",
+      "InventoryNumber": '榛戠偣',
+      "Thickness": '',
+      "MainUnit": "",
+      "RecordNum": "876",
+      "ProductNum": "0604000108",
+      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
+      "Height": "930.00",
+      "Width": "550.00",
+      "status": "宸插鏍�",
+      "ZhiDanRen": "鏇叉収闇�",
+      "SafetyStock": "2023-12-30",
+      "Auditor": "鏇叉収闇�",
+      "AuditorDate": "2023-12-30",
+    },
+    {
+      "id": "LC23123011",
+      "MaterialCode": "NG23060212",
+      "Code": "1",
+      "MaterialName": "11鏈�29閫�璐т紬鑷�",
+      "Origin": "鏅洪暅",
+      "InventoryNumber": '榛戠偣',
+      "Thickness": '',
+      "MainUnit": "",
+      "RecordNum": "876",
+      "ProductNum": "0604000108",
+      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
+      "Height": "930.00",
+      "Width": "550.00",
+      "status": "宸插鏍�",
+      "ZhiDanRen": "鏇叉収闇�",
+      "SafetyStock": "2023-12-30",
+      "Auditor": "鏇叉収闇�",
+      "AuditorDate": "2023-12-30",
+    },
+    {
+      "id": "LC23123011",
+      "MaterialCode": "NG23060212",
+      "Code": "1",
+      "MaterialName": "11鏈�29閫�璐т紬鑷�",
+      "Origin": "鏅洪暅",
+      "InventoryNumber": '榛戠偣',
+      "Thickness": '',
+      "MainUnit": "",
+      "RecordNum": "876",
+      "ProductNum": "0604000108",
+      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
+      "Height": "930.00",
+      "Width": "550.00",
+      "status": "宸插鏍�",
+      "ZhiDanRen": "鏇叉収闇�",
+      "SafetyStock": "2023-12-30",
+      "Auditor": "鏇叉収闇�",
+      "AuditorDate": "2023-12-30",
+    },
+  ],//table body瀹為檯鏁版嵁
+  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+    return[
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        // if (props.tableProp.footList.includes(column.field)) {
+        //   return sumNum(data, column.field)
+        // }
+        return ''
+      })
+    ]
+  }
+
+})
+
+
+
+</script>
+
+<template>
+  <div class="main-div-customer">
+    <el-row gutter="10" >
+      <el-col :span="2.5">
+        <div class="label-text">鍒跺崟鏃ユ湡鑼冨洿</div>
+      </el-col>
+      <el-col :span="4">
+        <el-date-picker
+            type="daterange"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            style="width: 200px;"
+        />
+      </el-col>
+      <el-col span="4">
+        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
+      </el-col>
+    </el-row>
+
+    <vxe-grid
+        max-height="100%"
+        @filter-change="filterChanged"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+
+    >
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li  v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{key+':  '}}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+      <template #button_slot="{ row }">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
+      </template>
+
+      <template #num1_filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+          </div>
+        </div>
+      </template>
+
+
+    </vxe-grid>
+  </div>
+</template>
+
+<style scoped>
+.main-div-customer{
+  width: 99%;
+  height: 100%;
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue
new file mode 100644
index 0000000..a82f79e
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TakeOutRecord.vue
@@ -0,0 +1,223 @@
+<!-- 棰嗗嚭璁板綍  -->
+<script setup>
+
+import {reactive} from "vue";
+import {useRouter} from  'vue-router'
+let router=useRouter()
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+
+
+//瀛愮粍浠舵帴鏀跺弬鏁�
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },//琛ㄥご鍙傛暟
+  columns:[
+    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
+    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
+    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
+    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
+    {field: 'id', width:'150', title: '棰嗗嚭鍗曞彿', sortable: true,},
+    {field: 'MaterialCode', width: '150',title: '鍘熻鍗曞彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'Code', width: '150',title: '搴忓彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'MaterialName', width: '120',title: '鏂拌鍗曞彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'Origin', width: '100',title: '鏂板簭鍙�', sortable: true},
+    {field: 'InventoryNumber',width: '100', title: '棰嗗嚭绫诲瀷', sortable: true,showOverflow:"ellipsis"},
+    {field: 'Thickness', width: '80',title: '璋冨嚭鏁伴噺', sortable: true},
+    {field: 'MainUnit',width: '100', title: '浜у搧缂栧彿', sortable: true},
+    {field: 'ProductName',width: '100', title: '浜у搧鍚嶇О', sortable: true},
+    {field: 'Height', width: '100',title: '闀�', sortable: true},
+    {field: 'Width',width: '100', title: '瀹�', sortable: true},
+    {field: 'ZhiDanRen', width: '80',title: '鍒跺崟浜�', sortable: true},
+    {field: 'status', width: '80',title: '鍗曟嵁鐘舵��', sortable: true},
+    {field: 'SafetyStock', width: '100',title: '鍒跺崟鏃ユ湡', sortable: true},
+    {field: 'Auditor', width: '100',title: '瀹℃牳浜�', sortable: true},
+    {field: 'AuditorDate', width: '100',title: '瀹℃牳鏃ユ湡', sortable: true},
+  ],//琛ㄥご鎸夐挳
+  toolbarConfig: {
+    // buttons: [{
+    //   'name': '鏂板'
+    // }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true
+  },
+  data:  [
+    {
+      "id": "LC23123011",
+      "MaterialCode": "NG23060212",
+      "Code": "1",
+      "MaterialName": "11鏈�29閫�璐т紬鑷�",
+      "Origin": "琛ュ崟",
+      "InventoryNumber": '閫�璐у簾寮�',
+      "Thickness": '876',
+      "MainUnit": "0604000108",
+      "ProductName": "4mm楂樻�ц兘鐜繚闀�",
+      "Height": "930.00",
+      "Width": "550.00",
+      "ZhiDanRen": "鏇叉収闇�",
+      "status": "宸插鏍�",
+      "SafetyStock": "2023-12-30",
+      "Auditor": "鏇叉収闇�",
+      "AuditorDate": "2023-12-30",
+    },
+    {
+      "id": "LC23123010",
+      "MaterialCode": "NG23060211",
+      "Code": "1",
+      "MaterialName": "11鏈�29閫�璐т紬鑷�",
+      "Origin": "琛ュ崟",
+      "InventoryNumber": '寮�浠嬮鍑�',
+      "Thickness": '584',
+      "MainUnit": "0604000107",
+      "ProductName": "5mm鐜哀鏍戣剛闀�",
+      "Height": "866.00",
+      "Width": "486.00",
+      "ZhiDanRen": "鏇叉収闇�",
+      "status": "宸插鏍�",
+      "SafetyStock": "2023-12-30",
+      "Auditor": "鏇叉収闇�",
+      "AuditorDate": "2023-12-30",
+    },
+    {
+      "id": "LC23123009",
+      "MaterialCode": "NG23060210",
+      "Code": "1",
+      "MaterialName": "11鏈�29閫�璐т紬鑷�",
+      "Origin": "琛ュ崟",
+      "InventoryNumber": '寮�浠嬮鍑�',
+      "Thickness": '584',
+      "MainUnit": "0604000106",
+      "ProductName": "5mm鐜哀鏍戣剛闀�",
+      "Height": "866.00",
+      "Width": "486.00",
+      "ZhiDanRen": "鏇叉収闇�",
+      "status": "宸插鏍�",
+      "SafetyStock": "2023-12-30",
+      "Auditor": "鏇叉収闇�",
+      "AuditorDate": "2023-12-30",
+    },
+  ],//table body瀹為檯鏁版嵁
+  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+    return[
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        // if (props.tableProp.footList.includes(column.field)) {
+        //   return sumNum(data, column.field)
+        // }
+        return ''
+      })
+    ]
+  }
+
+})
+
+
+
+</script>
+
+<template>
+  <div class="main-div-customer">
+    <el-row gutter="10" >
+      <el-col :span="2.5">
+        <div class="label-text">鍒跺崟鏃ユ湡鑼冨洿</div>
+      </el-col>
+      <el-col :span="4">
+        <el-date-picker
+            type="daterange"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            style="width: 200px;"
+        />
+      </el-col>
+      <el-col span="4">
+        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
+      </el-col>
+    </el-row>
+
+    <vxe-grid
+        max-height="100%"
+        @filter-change="filterChanged"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+
+    >
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li  v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{key+':  '}}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+      <template #button_slot="{ row }">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
+      </template>
+
+      <template #num1_filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+          </div>
+        </div>
+      </template>
+
+
+    </vxe-grid>
+  </div>
+</template>
+
+<style scoped>
+.main-div-customer{
+  width: 99%;
+  height: 100%;
+}
+</style>
\ No newline at end of file
diff --git a/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TransferRecord.vue b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TransferRecord.vue
new file mode 100644
index 0000000..6fee8b0
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/mm/mainProductStock/TransferRecord.vue
@@ -0,0 +1,202 @@
+<!-- 璋冩嫧璁板綍 -->
+<script setup>
+
+import {reactive} from "vue";
+import {useRouter} from  'vue-router'
+let router=useRouter()
+const getTableRow = (row,type) =>{
+  switch (type) {
+    case 'edit' :{
+      //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
+      router.push({path: '/main/trader/CreateTrader', query: { id: row.id }})
+      break
+    }
+    case 'delete':{
+      alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
+      break
+    }
+  }
+}
+
+
+
+//瀛愮粍浠舵帴鏀跺弬鏁�
+
+const gridOptions = reactive({
+  border:  "full",//琛ㄦ牸鍔犺竟妗�
+  keepSource: true,//淇濇寔婧愭暟鎹�
+  align: 'center',//鏂囧瓧灞呬腑
+  stripe:true,//鏂戦┈绾�
+  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  id: 'CustomerList',
+  showFooter: true,//鏄剧ず鑴�
+  printConfig: {},
+  importConfig: {},
+  exportConfig: {},
+  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
+  showOverflow:true,
+  columnConfig: {
+    resizable: true,
+    useKey: true
+  },
+  filterConfig: {   //绛涢�夐厤缃」
+    remote: true
+  },
+  customConfig: {
+    storage: true
+  },
+  editConfig: {
+    trigger: 'click',
+    mode: 'row',
+    showStatus: true
+  },//琛ㄥご鍙傛暟
+  columns:[
+    {type:'expand',fixed:"left",slots: { content:'content' },width: '50'},
+    // { type: 'checkbox',fixed:"left", title: '閫夋嫨', width: '80' },
+    { type: 'seq',fixed:"left", title: '鑷簭', width: '80' },
+    // {title: '鎿嶄綔', width: '110', slots: { default: 'button_slot' },fixed:"left"},
+    {field: 'id', width:'150', title: 'ID', sortable: true,},
+    {field: 'MaterialCode', width: '150',title: '鍘熻鍗曞彿', sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'MaterialName', width: '120',title: '鏂拌鍗曞彿', sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'Origin', width: '100',title: '鏂板簭鍙�', sortable: true},
+    {field: 'InventoryNumber',width: '100', title: '搴撳瓨鏁�', sortable: true,showOverflow:"ellipsis"},
+    {field: 'Width', width: '80',title: '璋冪敤鏁伴噺', sortable: true},
+    {field: 'ZhiDanRen', width: '80',title: '鍒跺崟浜�', sortable: true},
+    {field: 'Height',width: '100', title: '浜у搧缂栧彿', sortable: true},
+    {field: 'Thickness', width: '100',title: '闀�', sortable: true},
+    {field: 'MainUnit',width: '100', title: '瀹�', sortable: true},
+    {field: 'SafetyStock', width: '100',title: '鍒跺崟鏃ユ湡', sortable: true},
+  ],//琛ㄥご鎸夐挳
+  toolbarConfig: {
+    // buttons: [{
+    //   'name': '鏂板'
+    // }],
+    import: false,
+    export: true,
+    print: true,
+    zoom: true,
+    custom: true
+  },
+  data:  [
+    {
+      "id": "3765",
+      "MaterialCode": "NG23120709",
+      "MaterialName": "9",
+      "Origin": "NG23122010",
+      "InventoryNumber": "20",
+      "Width": '12.00',
+      "ZhiDanRen": '鍒樻檽鑹�',
+      "Height": "0601000437",
+      "Thickness": "1390.00",
+      "MainUnit": "760.00",
+      "SafetyStock": "2023-12-30",
+    },
+    {
+      "id": "3766",
+      "MaterialCode": "NG23120709",
+      "MaterialName": "9",
+      "Origin": "NG23122010",
+      "InventoryNumber": "20",
+      "Width": '12.00',
+      "ZhiDanRen": '鍒樻檽鑹�',
+      "Height": "0601000437",
+      "Thickness": "1390.00",
+      "MainUnit": "760.00",
+      "SafetyStock": "2023-12-30",
+    },{
+      "id": "3767",
+      "MaterialCode": "NG23120709",
+      "MaterialName": "9",
+      "Origin": "NG23122010",
+      "InventoryNumber": "20",
+      "Width": '12.00',
+      "ZhiDanRen": '鍒樻檽鑹�',
+      "Height": "0601000437",
+      "Thickness": "1390.00",
+      "MainUnit": "760.00",
+      "SafetyStock": "2023-12-30",
+    },
+  ],//table body瀹為檯鏁版嵁
+  footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
+    return[
+      columns.map((column, columnIndex) => {
+        if (columnIndex === 0) {
+          return '鍚堣:'
+        }
+        // if (props.tableProp.footList.includes(column.field)) {
+        //   return sumNum(data, column.field)
+        // }
+        return ''
+      })
+    ]
+  }
+
+})
+
+
+
+</script>
+
+<template>
+  <div class="main-div-customer">
+    <el-row gutter="10" >
+      <el-col :span="2.5">
+        <div class="label-text">鍒跺崟鏃ユ湡鑼冨洿</div>
+      </el-col>
+      <el-col :span="4">
+        <el-date-picker
+            type="daterange"
+            start-placeholder="寮�濮嬫椂闂�"
+            end-placeholder="缁撴潫鏃堕棿"
+            style="width: 200px;"
+        />
+      </el-col>
+      <el-col span="4">
+        <el-button id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
+      </el-col>
+    </el-row>
+
+    <vxe-grid
+        max-height="100%"
+        @filter-change="filterChanged"
+        class="mytable-scrollbar"
+        ref="xGrid"
+        v-bind="gridOptions"
+
+    >
+      <!--      @toolbar-button-click="toolbarButtonClickEvent"-->
+      <!--      涓嬫媺鏄剧ず鎵�鏈変俊鎭彃妲�-->
+      <template #content="{ row}">
+        <ul class="expand-wrapper">
+          <li  v-for="(item,key,index) in row">
+            <span style="font-weight: bold">{{key+':  '}}</span>
+            <span>{{ item }}</span>
+          </li>
+        </ul>
+      </template>
+
+      <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
+      <template #button_slot="{ row }">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
+        <el-button @click="getTableRow(row,'delete')" link type="primary" size="small">鍒犻櫎</el-button>
+      </template>
+
+      <template #num1_filter="{ column, $panel }">
+        <div>
+          <div v-for="(option, index) in column.filters" :key="index">
+            <input type="type" v-model="option.data" @input="changeFilterEvent($event, option, $panel)"/>
+          </div>
+        </div>
+      </template>
+
+
+    </vxe-grid>
+  </div>
+</template>
+
+<style scoped>
+.main-div-customer{
+  width: 99%;
+  height: 100%;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0