From 5ca512048bcb9fa1e29fa924a468ba1302c6c243 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 13 三月 2024 10:07:06 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue                        |   94 ++++++------
 north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java |    1 
 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue                        |  168 +++++++++++------------
 north-glass-erp/northglass-erp/src/views/sd/order/Order.vue                              |   10 
 north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue                    |    3 
 north-glass-erp/northglass-erp/src/views/LoginView.vue                                   |    2 
 north-glass-erp/northglass-erp/src/lang/index.js                                         |    2 
 north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue                   |   89 ++++++------
 8 files changed, 184 insertions(+), 185 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/lang/index.js b/north-glass-erp/northglass-erp/src/lang/index.js
index 4b4c72b..2a371f6 100644
--- a/north-glass-erp/northglass-erp/src/lang/index.js
+++ b/north-glass-erp/northglass-erp/src/lang/index.js
@@ -9,7 +9,7 @@
 }
 
 const i18n = createI18n({
-    locale: localStorage.getItem('lang') || 'en', // 璁剧疆褰撳墠璇█绫诲瀷
+    locale: localStorage.getItem('lang') || 'zh', // 璁剧疆褰撳墠璇█绫诲瀷
     legacy: false, // 濡傛灉瑕佹敮鎸乧ompositionAPI锛屾椤瑰繀椤昏缃负false;
     globalInjection: true, // 鍏ㄥ眬娉ㄥ唽$t鏂规硶
     messages
diff --git a/north-glass-erp/northglass-erp/src/views/LoginView.vue b/north-glass-erp/northglass-erp/src/views/LoginView.vue
index fd328cc..d644721 100644
--- a/north-glass-erp/northglass-erp/src/views/LoginView.vue
+++ b/north-glass-erp/northglass-erp/src/views/LoginView.vue
@@ -35,7 +35,7 @@
 
 const validatePass = (rule: any, value: any, callback: any) => {
   if (value === '') {
-    callback(new Error(t('login.psErr')))
+    callback(new Error(  t('login.psErr')  ))
   } else {
     callback()
   }
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
index cdbf84d..5869d79 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -9,7 +9,8 @@
 import SelectProduct from "@/views/sd/product/SelectProduct.vue"
 import {changeFilterEvent,filterChanged} from "@/hook"
 import {addListener,toolbarButtonClickEvent} from "@/hook/mouseMove";
-import {CaretBottom} from "@element-plus/icons-vue";
+import {useI18n} from "vue-i18n"
+const { t } = useI18n()
 
 let dialogTableVisible = ref(false)
 let productVisible = ref(false)
@@ -31,7 +32,7 @@
   orderId:'',
   deliveryDate:'',
   batch:'',
-  calculateType:'',
+  calculateType:null,
   salesmanId:'',
   salesman:'',
   alType:'',
@@ -79,12 +80,12 @@
     body: {
       options: [
         [
-          { code: 'addRow', name: '娣诲姞', prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false },
-          { code: 'deleteRow', name: '鍒犻櫎', prefixIcon: 'vxe-icon-delete', visible: true, disabled: true },
-          { code: 'copyChecked', name: '閫変腑鐩稿悓', prefixIcon: 'vxe-icon-copy', visible: true, disabled: false },
-          { code: 'copyAll', name: '涔嬪悗鐩稿悓', prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false },
-          { code: 'clearChecked', name: '娓呴櫎閫変腑', prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false },
-          { code: 'computedMoney', name: '璁$畻閲戦', prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true },
+          { code: 'addRow', name: t('basicData.add'), prefixIcon: 'vxe-icon-square-plus', visible: true, disabled: false },
+          { code: 'deleteRow', name: t('basicData.delete'), prefixIcon: 'vxe-icon-delete', visible: true, disabled: true },
+          { code: 'copyChecked', name: t('basicData.selectSame'), prefixIcon: 'vxe-icon-copy', visible: true, disabled: false },
+          { code: 'copyAll', name: t('basicData.sameAfterwards'), prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false },
+          { code: 'clearChecked', name: t('basicData.clearSelection'), prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false },
+          { code: 'computedMoney', name: t('basicData.calculateAmount'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true },
         ]
       ]
     }
@@ -105,45 +106,44 @@
     showStatus: true
   },//琛ㄥご鍙傛暟
   columns:[
-    {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
+    {type: 'seq',fixed:"left", title: t('basicData.Number'), width: 80 },
     // {field: 'buildingNumber',width:120,  title: '妤煎彿',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
-    {field: 'productId',width:100,  title: '浜у搧ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'productName',width:120,  title: '浜у搧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'price',width:140,  title: '鍗曚环',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'quantity',width:120,  title: '鏁伴噺',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'grossAmount',width:120,  title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'width',width:120,  title: '瀹�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'height',width:120,  title: '楂�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'area',width:150,  title: '瀹為檯鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
-    {field: 'grossArea',width:140,  title: '瀹為檯鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
-    {field: 'computeArea',width:180,  title: '缁撶畻鍗曠墖闈㈢Н',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'computeGrossArea',width:140,  title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'shape',width:120,  title: '褰㈢姸',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'bendRadius',width:140,  title: '寮挗寮у害',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'edgingType',width:140,  title: '纾ㄨ竟绫诲瀷',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'processingNote',width:140,  title: '鍔犲伐瑕佹眰',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'remarks',width:120,  title: '澶囨敞',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}
-
+    {field: 'productId',width:140,  title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'productName',width:300,  title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'price',width:140,  title: t('order.price'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'quantity',width:140,  title: t('order.quantity'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'grossAmount',width:160,  title: t('order.grossAmount'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'width',width:120,  title: t('order.width') ,editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'height',width:140,  title: t('order.height'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'area',width:150,  title: t('order.trueArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
+    {field: 'grossArea',width:160,  title: t('order.trueGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true,filterMethod:filterChanged},
+    {field: 'computeArea',width:180,  title: t('order.computeArea'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'computeGrossArea',width:200,  title: t('order.computeGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'shape',width:120,  title: t('order.shape'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'bendRadius',width:160,  title: t('order.bendRadius'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'edgingType',width:160,  title: t('order.edgingType'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'processingNote',width:200,  title: t('order.processingNote'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'remarks',width:140,  title: t('basicData.remarks'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}
 
   ],
   //琛ㄥ崟楠岃瘉
   editRules: {
     buildingNumber: [
       { required: false},
-      { min: 0, max: 255, message: '鍚嶇О闀垮害鍦� 0 鍒� 255 涓瓧绗�' }
+      { min: 0, max: 255, message: t('basicData.msg.max255') }
     ],
     productId: [
-      { required: true, message: '璇烽�夋嫨浜у搧' }
+      { required: true, message: t('order.msg.productCheck') }
     ],
     productName: [
-      { required: true, message: '璇烽�夋嫨浜у搧' }
+      { required: true, message: t('order.msg.productCheck') }
     ],
     price: [
       {
         validator ({ cellValue }) {
           const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/
           if ( !regex.test(cellValue) ) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+            return new Error(t('basicData.msg.range99999Dec2') )
           }
         }
       }
@@ -153,7 +153,7 @@
         validator ({ cellValue }) {
           const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/
           if (!regex.test(cellValue)) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+            return new Error(t('basicData.msg.range99999Dec2'))
           }
         }
       }
@@ -164,7 +164,7 @@
         validator ({ cellValue }) {
           const regex = /^[1-9]\d*$/
           if (!regex.test(cellValue)) {
-            return new Error('杈撳叆澶т簬0鐨勬暣鏁�')
+            return new Error(t('basicData.msg.greater0'))
           }
         }}
     ],
@@ -173,7 +173,7 @@
         validator ({ cellValue }) {
           const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/
           if (!regex.test(cellValue)) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+            return new Error(t('basicData.msg.range99999Dec2'))
           }
         }
       }
@@ -183,7 +183,7 @@
         validator ({ cellValue }) {
           const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
           if ( !regex.test(cellValue)) {
-            return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
+            return new Error(t('basicData.msg.range99999Dec2'))
           }
         }
       }
@@ -191,11 +191,11 @@
   },
   toolbarConfig: {
     buttons: [
-      {'code': 'remarks', 'name': '鍔犲伐瑕佹眰'},
-      {'code': 'Craft', 'name': '宸ヨ壓',status: 'primary',disabled: true},
-      {'code': 'review', 'name': '瀹℃牳',status: 'primary',disabled: true},
-      {'code': 'updateMoney', 'name': '閲戦閲嶇疆',status: 'primary',disabled: true},
-      {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save',disabled: false}
+      {'code': 'remarks', 'name': t('order.processingNote')},
+      {'code': 'Craft', 'name': t('order.technology'),status: 'primary',disabled: true},
+      {'code': 'review', 'name': t('basicData.review'),status: 'primary',disabled: true},
+      {'code': 'updateMoney', 'name': t('order.amountReset'),status: 'primary',disabled: true},
+      {'code': 'saveOrder', 'name': t('basicData.save'),status: 'primary',icon: 'vxe-icon-save',disabled: false}
     ],
     slots: {
       tools: 'toolbar_buttons'
@@ -212,7 +212,7 @@
     return[
       columns.map((column, columnIndex) => {
         if (columnIndex === 0) {
-          return '鍚堣:'
+          return t('basicData.total')+':'
         }
         // if (props.tableProp.footList.includes(column.field)) {
         //   return sumNum(data, column.field)
@@ -250,39 +250,39 @@
         }
         case 'saveOrder': {
           if ($grid.getTableData().tableData.length === 0){
-            ElMessage.error('娌℃湁琛ㄦ牸鏁版嵁锛�')
+            ElMessage.error( t('order.msg.tableLengthNot'))
             return
           }
           if(!gridOptions.menuConfig.body.options[0][5].disabled){
-            ElMessage.error('璇峰厛鎵撳紑鍙冲嚮鑿滃崟閲嶆柊璁$畻閲戦鍚庯紝鍐嶄繚瀛橈紒')
+            ElMessage.error(t('order.msg.amountReset'))
             return
           }
 
           const project = titleUploadData.value.project
           if(project === null || project === undefined || project === ''){
-            ElMessage.error('杈撳叆椤圭洰鍚嶇О锛�')
+            ElMessage.error(t('order.msg.projectCheck'))
             return
           }
           const customer = titleUploadData.value.customerId
           if(customer === null || customer === undefined || customer === ''){
-            ElMessage.error('璇烽�夋嫨瀹㈡埛锛�')
+            ElMessage.error(t('order.msg.customerCheck'))
             return
           }
           const salasMan = titleUploadData.value.salesman
           if(salasMan === null || salasMan === undefined || salasMan === ''){
-            ElMessage.error('璇烽�夋嫨涓氬姟鍛橈紒')
+            ElMessage.error(t('order.msg.salasManCheck'))
             return
           }
           const calculateType = titleUploadData.value.calculateType
           if(calculateType === null || calculateType === undefined || calculateType === ''){
-            ElMessage.error('璇烽�夋嫨璁$畻鏂瑰紡锛�')
+            ElMessage.error(t('order.msg.calculateTypeCheck'))
             return
           }
 
           if ($grid) {
             const errMap = await $grid.validate(true)
             if (errMap) {
-              ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣)
+              ElMessage.error(t('basicData.msg.checkoutLose'))
               return
             }
             let order ={
@@ -306,7 +306,7 @@
         }
         case 'addRow': {
           if ($grid.getTableData().tableData.length >=240){
-            ElMessage.error('琛ㄦ牸鏁版嵁宸茶揪鍒版渶澶у�硷紒')
+            ElMessage.error(t('order.msg.tableLengthMax'))
             return
           }
           $grid.insert({})
@@ -392,7 +392,7 @@
 //鑾峰彇瀛愰〉闈骇鍝佹柟娉�
 const getProductRow = (row) => {
   if(row.state!=1){
-    ElMessage.warning('璇ヤ骇鍝佽繕鏈鏍�')
+    ElMessage.warning(t('order.msg.productStateCheck'))
     return
   }
 
@@ -413,7 +413,6 @@
   }
   request.post(`/order/getOrderById/${str}`).then((res) => {
     if(res.code==200){
-      console.log(res.data.order)
       titleUploadData.value = res.data.order
       //鍙栨秷宸ヨ壓鎸夐挳绂佺敤
       gridOptions.toolbarConfig.buttons[1].disabled = false
@@ -430,7 +429,7 @@
       if(res.data.order.orderReview === 2){
         gridOptions.toolbarConfig.buttons[2].disabled = false
         gridOptions.toolbarConfig.buttons[2].code='reviews'
-        gridOptions.toolbarConfig.buttons[2].name='鍙嶅'
+        gridOptions.toolbarConfig.buttons[2].name=t('basicData.cancelReview')
         gridOptions.toolbarConfig.buttons[3].disabled = false
       }
       if(res.data.order.productionOrder !==0 ){
@@ -455,6 +454,7 @@
     titleUploadData.value.icon = titleSelectJson.value.icon[0].basicName
     titleUploadData.value.packType = titleSelectJson.value.packType[0].basicName
     titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName
+    titleUploadData.value.calculateType=1
     const today = new Date
     today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
     titleUploadData.value.deliveryDate = today.getFullYear() +
@@ -469,7 +469,7 @@
 const saveOrder = (order) => {
   request.post(`/order/saveOrder`,order).then((res) => {
     if(res.code==200){
-      ElMessage.success('淇濆瓨鎴愬姛')
+      ElMessage.success(t('basicData.msg.saveSuccess'))
       router.push({path:'/main/order/selectOrder'})
     }else {
       ElMessage.error(res.msg)
@@ -485,7 +485,7 @@
   }
   request.post(`/order/updateOrderMoney`,updateData).then(res => {
     if (res.code == 200){
-      ElMessage.success('鏇存柊閲戦鎴愬姛')
+      ElMessage.success( t('order.msg.updateAmountSuccessfully') )
       router.push({path:'/main/order/createOrder',query:{orderId:titleUploadData.value.orderId,random:Math.random()}})
     }
 
@@ -500,13 +500,13 @@
     if(res.code==200){
       gridOptions.toolbarConfig.buttons[2].disabled = true
       if(state==2){
-        ElMessage.success('瀹℃牳鎴愬姛锛�')
+        ElMessage.success(t('basicData.msg.ReviewSuccess') )
       }else if (state==0){
-        ElMessage.success('鍙嶅鎴愬姛锛�')
+        ElMessage.success(t('basicData.msg.cancelReviewSuccess'))
       }
-      setTimeout(() =>{
-        location.reload()
-      },1500)
+      router.push({path:'/main/order/createOrder',query:{
+        orderId:titleUploadData.value.orderId,
+        random:Math.random()}})
 
     }else{
       ElMessage.error(res.msg)
@@ -554,7 +554,10 @@
     const workbook = XLXS.read(data, { type: 'binary' })
     let jsonData = XLXS.utils.sheet_to_json(workbook.Sheets.Sheet1).slice(1)
     if(jsonData.length>240){
-      ElMessage.error(`瀵煎叆${jsonData.length}鏉�,鏁版嵁涓嶈兘瓒呰繃240鏉�,璇峰垎璁㈠崟瀵煎叆`)
+      ElMessage.error(`${t('order.msg.importMaxCheckFailFirst')}
+                          ${jsonData.length}
+                          ${t('order.msg.importMaxCheckFailMid')}
+                          ${t('order.msg.importMaxCheckFailLast')}`)
       return
     }
     jsonData.forEach((item,index) => {
@@ -598,15 +601,15 @@
   <div class="main-div">
     <div class="order-primary" style="background-color: white">
       <el-row>
-        <el-col  :span="2"><el-text>*椤圭洰鍚嶇О锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>*{{$t('order.project')}}锛�</el-text></el-col>
         <el-col  :span="2"><el-input v-model="titleUploadData.project"/></el-col>
-        <el-col  :span="2"><el-text>*瀹㈡埛閫夋嫨锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>*{{$t('order.customers')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-select  v-model="titleUploadData.customerId"
                       @change="changeCustomer"
                       filterable
                       clearable
-                      placeholder="" >
+                      placeholder=" " >
             <el-option v-for="item in titleSelectJson['customer']"
                        :key="item.id"
                        :label="item.id+' '+item.customerName"
@@ -614,7 +617,7 @@
                        />
           </el-select>
         </el-col>
-        <el-col  :span="2"><el-text>*璁㈠崟绫诲瀷锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>*{{$t('order.orderType')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-select v-model="titleUploadData.orderType"  clearable placeholder=""  >
             <el-option
@@ -625,7 +628,7 @@
             />
           </el-select>
         </el-col>
-        <el-col  :span="2"><el-text>璁㈠崟鍒嗙被锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.orderClassify')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-select v-model="titleUploadData.orderClassify"  clearable placeholder=" " >
             <el-option
@@ -636,7 +639,7 @@
             />
           </el-select>
         </el-col>
-        <el-col  :span="2"><el-text>鍟嗘爣閫夐」锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.icon')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-select v-model="titleUploadData.icon"  clearable placeholder=" " >
             <el-option  v-for="item in titleSelectJson['icon']"
@@ -645,7 +648,7 @@
                        :value="item.basicName"/>
           </el-select>
         </el-col>
-        <el-col  :span="2"><el-text>鍖呰鏂瑰紡锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.packType')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-select v-model="titleUploadData.packType"  clearable placeholder=" " >
             <el-option v-for="item in titleSelectJson['packType']"
@@ -657,9 +660,9 @@
         <!--      <el-col :span="2"><el-text  /></el-col>-->
       </el-row>
       <el-row>
-        <el-col  :span="2"><el-text>閿�鍞崟鍙凤細</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.orderId')}}锛�</el-text></el-col>
         <el-col  :span="2"><el-text  >{{titleUploadData.orderId}}</el-text></el-col>
-        <el-col  :span="2"><el-text>浜よ揣鏃ユ湡锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.deliveryDate')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-date-picker
               v-model="titleUploadData.deliveryDate"
@@ -667,15 +670,15 @@
               placeholder=""
               />
         </el-col>
-        <el-col  :span="2"><el-text>鎵规锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.batch')}}锛�</el-text></el-col>
         <el-col  :span="2"><el-input  v-model="titleUploadData.batch"/></el-col>
-        <el-col  :span="2"><el-text>璁$畻鏂瑰紡锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.calculateType')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-select v-model="titleUploadData.calculateType"  clearable placeholder=" " >
             <el-option :value="1" label="闈㈢Н閲戦锛堝崟鐗囷級"/>
           </el-select>
         </el-col>
-        <el-col  :span="2"><el-text>*涓氬姟鍛橈細</el-text></el-col>
+        <el-col  :span="2"><el-text>*{{$t('order.salesman')}}锛�</el-text></el-col>
         <el-col  :span="2">
           <el-select
               v-model="titleUploadData.salesmanId"
@@ -689,7 +692,7 @@
                        :value="item.id"/>
           </el-select>
         </el-col>
-        <el-col  :span="2"><el-text>閾濇潯鏂瑰紡锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.alType')}}</el-text></el-col>
         <el-col  :span="2">
           <el-select v-model="titleUploadData.alType" clearable placeholder=" " >
             <el-option v-for="item in titleSelectJson['alType']"
@@ -700,17 +703,17 @@
         </el-col>
       </el-row>
       <el-row>
-        <el-col  :span="2"><el-text>鎬婚噾棰濓細</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.money')}}锛�</el-text></el-col>
         <el-col  :span="2"><el-text >{{titleUploadData.money}}</el-text></el-col>
-        <el-col  :span="2"><el-text>鍚堝悓缂栧彿锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.customers')}}锛�</el-text></el-col>
         <el-col  :span="2"><el-input v-model="titleUploadData.contractId"/></el-col>
-        <el-col  :span="2"><el-text>瀹㈡埛鎵规锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.customerBatch')}}:</el-text></el-col>
         <el-col  :span="2"><el-input v-model="titleUploadData.customerBatch"/></el-col>
-        <el-col  :span="2"><el-text>鑱旂郴浜猴細</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.contacts')}}:</el-text></el-col>
         <el-col  :span="2"><el-input v-model="titleUploadData.contacts" /></el-col>
-        <el-col  :span="2"><el-text>鑱旂郴鐢佃瘽锛�</el-text></el-col>
+        <el-col  :span="2"><el-text>{{$t('order.contactNumber')}}:</el-text></el-col>
         <el-col  :span="2"><el-input v-model="titleUploadData.contactNumber"/></el-col>
-        <el-col  :span="2"><el-text >閫佽揣鍦板潃锛�</el-text></el-col>
+        <el-col  :span="2"><el-text >{{$t('order.deliveryAddress')}}:</el-text></el-col>
         <el-col  :span="2"><el-input v-model="titleUploadData.deliveryAddress"/></el-col>
       </el-row>
 <!--      <el-row>-->
@@ -740,13 +743,13 @@
           </div>
         </template>
         <template #toolbar_buttons>
-          <vxe-button  @click="importEvent">瀵煎叆</vxe-button>
+          <vxe-button  @click="importEvent">{{$t('order.import')}}</vxe-button>
         </template>
 
 
       </vxe-grid>
     </div>
-    <el-dialog v-model="dialogTableVisible" title="鍔犲伐瑕佹眰" style="width: 60%;height:75% ">
+    <el-dialog v-model="dialogTableVisible" :title="$t('order.processingNote')" style="width: 60%;height:75% ">
       <el-input
           v-model="titleUploadData.processingNote"
           type="textarea"
@@ -756,12 +759,7 @@
     <el-dialog v-model="productVisible"  style="width: 80%;height:75% ">
       <select-product :rowIndex="rowIndex" @getProductRow="getProductRow" style="width: 100%;height: 100%" />
     </el-dialog>
-<!--閫変腑琛ㄦ牸 -->
-<!--    <div class="vxe-table&#45;&#45;cell-area" ref="cellArea" >-->
-<!--      <span  class="vxe-table&#45;&#45;cell-main-area"  ></span>-->
 
-<!--      <span class="vxe-table&#45;&#45;cell-active-area"  ></span>-->
-<!--    </div>-->
 
   </div>
 </template>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/Order.vue b/north-glass-erp/northglass-erp/src/views/sd/order/Order.vue
index cdd841e..8dcf94d 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/Order.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/Order.vue
@@ -1,6 +1,8 @@
 <script setup>
 import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
-import {useRouter,useRoute,onBeforeRouteUpdate} from "vue-router";
+import {useRouter,useRoute,onBeforeRouteUpdate} from "vue-router"
+import {useI18n} from "vue-i18n"
+const { t } = useI18n()
 const router = useRouter()
 const route = useRoute()
 let indexFlag=$ref(1)
@@ -18,9 +20,9 @@
   <div id="main-div">
     <div id="div-title">
       <el-breadcrumb :separator-icon="ArrowRight">
-        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/order/selectOrder' }">璁㈠崟棣栭〉</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/order/createOrder' }">鍒涘缓</el-breadcrumb-item>
-        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
+        <el-breadcrumb-item @click="changeRouter(1)" :class="indexFlag===1?'indexTag':''" :to="{ path: '/main/order/selectOrder' }">{{$t('order.orderHomePage')}}</el-breadcrumb-item>
+        <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/order/createOrder' }">{{$t('basicData.create')}}</el-breadcrumb-item>
+        <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/order/orderReport' }">{{$t('order.orderReport')}}</el-breadcrumb-item>
         <el-breadcrumb-item v-show="false" :to="{ path: '/main/order/orderReport' }">鎶ヨ〃</el-breadcrumb-item>
       </el-breadcrumb>
     </div>
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
index 4a3072f..4fc0bc4 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/SelectOrder.vue
@@ -1,13 +1,15 @@
 <script setup>
   import {Search} from "@element-plus/icons-vue"
   import {useRouter} from "vue-router"
-  import {reactive, ref} from "vue";
-  const router = useRouter()
+  import {reactive, ref} from "vue"
   import ProcessCardProgress from '@/views/pp/report/ProcessCardProgress.vue'
   import request from "@/utils/request";
-  import deepClone from "@/utils/deepClone";
-  import {ElMessage} from "element-plus";
-  import {VXETable} from "vxe-table";
+  import deepClone from "@/utils/deepClone"
+  import {ElMessage} from "element-plus"
+  import {VXETable} from "vxe-table"
+  import {useI18n} from "vue-i18n"
+  const { t } = useI18n()
+  const router = useRouter()
 
 
   const xGrid = ref()
@@ -41,35 +43,35 @@
     },//琛ㄥご鍙傛暟
     columns:[
       {type:'expand',slots: { content:'content' },width: 50,fixed:"left",},
-      {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left",},
-      {type: 'seq', title: '鑷簭', width: 80 ,fixed:"left",},
+      {title: t('basicData.operate'), width: 110, slots: { default: 'button_slot' },fixed:"left",},
+      {type: 'seq', title: t('basicData.Number'), width: 80 ,fixed:"left",},
 
-      {field:'createOrder',title: '涓嬪崟', width: 40, slots: { default: 'state' }},
-      {field:'processReview',title: '宸ヨ壓', width: 40, slots: { default: 'state' }},
-      {field:'orderReview',title: '瀹℃牳', width: 40, slots: { default: 'state' }},
-      {field:'productionOrder',title: '宸ュ崟', width: 40, slots: { default: 'state' }},
-      {field:'processingCard',title: '娴佺▼', width: 40, slots: { default: 'state' }},
-      {field:'warehousing',title: '鍏ュ簱', width: 40, slots: { default: 'state' }},
-      {field:'delivery',title: '鍙戣揣', width: 40, slots: { default: 'state' }},
+      {field:'createOrder',title: t('searchOrder.createOrder'), width: 40, slots: { default: 'state' }},
+      {field:'processReview',title: t('order.technology'), width: 40, slots: { default: 'state' }},
+      {field:'orderReview',title: t('basicData.review'), width: 40, slots: { default: 'state' }},
+      {field:'productionOrder',title: t('searchOrder.production'), width: 40, slots: { default: 'state' }},
+      {field:'processingCard',title: t('searchOrder.process'), width: 40, slots: { default: 'state' }},
+      {field:'warehousing',title: t('searchOrder.storage'), width: 40, slots: { default: 'state' }},
+      {field:'delivery',title: t('searchOrder.delivery'), width: 40, slots: { default: 'state' }},
 
-      {field: 'orderId',width:120,  title: '閿�鍞崟鍙�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'customerId',width:120,  title: '瀹㈡埛缂栧彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'customerName',width:120,  title: '瀹㈡埛鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'project',width:120,  title: '椤圭洰鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'batch',width:120,  title: '鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'quantity',width:120,  title: '鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: '14',width:120,  title: '搴撳瓨鏁�', sortable: true},
-      {field: 'area',width:120,  title: '鎬荤粨绠楅潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'createTime',width:120,   title: '鎶ヨ〃鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'packType',width:120,  title: '鍖呰鏂瑰紡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'orderType',width:120,  title: '璁㈠崟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'salesman',width:120,  title: '涓氬姟鍛�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'perimeter',width:120,  title: '鍛ㄩ暱',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'deliveryDate',width:120,  title: '浜よ揣鏃ユ湡',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'customerBatch',width:120,  title: '瀹㈡埛鎵规',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'orderId',width:120,  title: t('order.orderId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'customerId',width:120,  title: t('customer.customerNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'customerName',width:120,  title: t('customer.customerName'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'project',width:120,  title: t('order.project'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'batch',width:120,  title: t('order.batch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'quantity',width:120,  title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: '14',width:120,  title: t('searchOrder.inventoryNum'), sortable: true},
+      {field: 'area',width:120,  title: t('order.computeGrossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'createTime',width:120,   title: t('basicData.reportData'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'packType',width:120,  title: t('order.packType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'orderType',width:120,  title: t('order.orderType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'salesman',width:120,  title: t('order.salesman'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'perimeter',width:120,  title: t('searchOrder.perimeter'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'deliveryDate',width:120,  title: t('order.deliveryDate'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
+      {field: 'customerBatch',width:120,  title: t('order.customerBatch'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
 
       //{field: '14',width:120,  title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-      {field: 'deliveryAddress',width:120,  title: '鍦板潃',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
+      {field: 'deliveryAddress',width:120,  title: t('order.deliveryAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
 
     ],//琛ㄥご鎸夐挳
     toolbarConfig: {
@@ -91,7 +93,7 @@
       return[
         columns.map((column, columnIndex) => {
           if (columnIndex === 0) {
-            return '鍚堣:'
+            return t('basicData.total')
           }
           // if (props.tableProp.footList.includes(column.field)) {
           //   return sumNum(data, column.field)
@@ -109,7 +111,7 @@
         switch (code) {
           case 'checkList': {
             if($grid.getCheckboxRecords().length==0){
-              VXETable.modal.message( '璇烽�夋嫨涓�鏉℃暟鎹紒')
+              VXETable.modal.message( t('searchOrder.msg'))
               return
             }
             break
@@ -219,15 +221,15 @@
       }
       case 'delete': {
         if (row.processReview === 2) {
-          ElMessage.warning('宸插鏍哥殑璁㈠崟涓嶈兘鍒犻櫎')
+          ElMessage.warning(t('searchOrder.msgDelete'))
           return
         }
         request.post(`/order/deleteOrder/${row.orderId}`).then((res) => {
           if(res.code==200){
-            ElMessage.success('鍒犻櫎鎴愬姛')
-            location.reload()
+            ElMessage.success(t('searchOrder.msgDeleteSuccess'))
+            router.push({path:'/main/order/selectOrder',query:{random:Math.random()}})
           }else{
-            ElMessage.warning('鍒犻櫎澶辫触')
+            ElMessage.warning(t('searchOrder.msgDeleteFail'))
           }
         })
         break
@@ -244,13 +246,13 @@
     <el-date-picker
         v-model="selectDate"
         type="daterange"
-        start-placeholder="寮�濮嬫椂闂�"
-        end-placeholder="缁撴潫鏃堕棿"
+        :start-placeholder="$t('basicData.startDate')"
+        :end-placeholder="$t('basicData.startDate')"
         format="YYYY-MM-DD"
         value-format="YYYY-MM-DD"
 
     />
-    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">鏌ヨ</el-button>
+    <el-button @click="changeDate" style="margin-top: -5px"  id="searchButton" type="primary" :icon="Search">{{ $t('basicData.search') }}</el-button>
     <vxe-grid
         @filter-change="filterChanged"
         @cell-dblclick="cellClickEvent"
@@ -276,10 +278,10 @@
 
       <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
       <template #button_slot="{ row }">
-        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">缂栬緫</el-button>
-        <el-popconfirm @confirm="getTableRow(row,'delete')" title="纭鍒犻櫎璁㈠崟?">
+        <el-button @click="getTableRow(row,'edit')" link type="primary" size="small">{{ $t('basicData.edit') }}</el-button>
+        <el-popconfirm @confirm="getTableRow(row,'delete')" :title="$t('basicData.deleteConfirm')">
           <template #reference>
-            <el-button  link type="primary" size="small">鍒犻櫎</el-button>
+            <el-button  link type="primary" size="small">{{ $t('basicData.delete') }}</el-button>
           </template>
         </el-popconfirm>
       </template>
@@ -293,10 +295,10 @@
       </template>
 
       <template #toolbar_buttons>
-        <vxe-select @change="changeOrderType" v-model="orderType" placeholder="璁㈠崟绫诲瀷">
-          <vxe-option value="2" label="姝e父璁㈠崟"></vxe-option>
-          <vxe-option value="-2" label="浣滃簾璁㈠崟"></vxe-option>
-          <vxe-option value="0" label="鍏ㄩ儴璁㈠崟"></vxe-option>
+        <vxe-select @change="changeOrderType" v-model="orderType" :placeholder="$t('searchOrder.orderType')">
+          <vxe-option value="2" :label="$t('searchOrder.regularOrders')"></vxe-option>
+          <vxe-option value="-2" :label="$t('searchOrder.cancelledOrders')"></vxe-option>
+          <vxe-option value="0" :label="$t('searchOrder.allOrders')"></vxe-option>
         </vxe-select>
       </template>
 
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
index 9613ec1..2ad94fa 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/UpdateOrderCraft.vue
@@ -4,7 +4,8 @@
 import request from "@/utils/request"
 import {ElMessage} from "element-plus"
 import {changeFilterEvent,filterChanged} from "@/hook"
-import SelectProduct from "@/views/sd/product/SelectProduct.vue";
+import {useI18n} from "vue-i18n"
+const { t } = useI18n()
 
 const router = useRouter()
 const route = useRoute()
@@ -40,25 +41,25 @@
     showStatus: true
   },//琛ㄥご鍙傛暟
   columns:[
-    {title: '鎿嶄綔', width: 110, slots: { default: 'button_slot' },fixed:"left",},
-    {field: 'orderNumber',width:120,  title: '搴忓彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {title: t('basicData.operate'), width: 110, slots: { default: 'button_slot' },fixed:"left",},
+    {field: 'orderNumber',width:120,  title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     //{field: 'orderDetail.buildingNumber',width:120,  title: '妤煎彿',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'orderDetail.productName',width:120,  title: '鎴愬搧鍚嶇О',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'glassAddress',width:120,  title: '鏍囪',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'glassChild',width:120,  title: '瀛愪骇鍝�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.width',width:120,  title: '鎴愬搧瀹�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.height',width:120,  title: '鎴愬搧楂�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.shape',width:120,  title: '褰㈢姸',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'totalArea',width:120,  title: '鎬诲昂瀵�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'childWidth',width:120,  title: '鍗曠墖瀹�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'childHeight',width:120,  title: '鍗曠墖楂�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'area',width:120,  title: '鍗曠墖灏哄',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.quantity',width:120,  title: '鏁伴噺',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'process',width:120,  title: '宸ヨ壓娴佺▼',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'icon',width:120,  title: '鍟嗘爣',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.processingNote',width:120,  title: '鍔犲伐瑕佹眰',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.remarks',width:120,  title: '澶囨敞',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
-    {field: 'orderDetail.edgingType',width:120,  title: '纾ㄨ竟绫诲瀷',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}
+    {field: 'orderDetail.productName',width:120,  title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'glassAddress',width:120,  title: t('craft.glassAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'glassChild',width:120,  title: t('craft.glassChild'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.width',width:120,  title: t('craft.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.height',width:120,  title: t('craft.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.shape',width:120,  title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'totalArea',width:120,  title: t('craft.totalArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'childWidth',width:120,  title: t('craft.childWidth'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'childHeight',width:120,  title: t('craft.childHeight'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'area',width:120,  title: t('craft.area'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.quantity',width:120,  title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'process',width:120,  title: t('craft.process'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'icon',width:120,  title: t('order.icon'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.processingNote',width:120,  title: t('order.processingNote'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.remarks',width:120,  title: t('order.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'orderDetail.edgingType',width:120,  title: t('order.edgingType'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}
   ],//琛ㄥご鎸夐挳
   mergeCells: [
     /*{ row: 0, col: 1, rowspan: 4, colspan: 1 },
@@ -71,9 +72,9 @@
   ],
   toolbarConfig: {
     buttons: [
-      {'code': 'remarks', 'name': '鍔犲伐瑕佹眰'},
-      {'code': 'Craft', 'name': '璁㈠崟璇︽儏',status: 'primary'},
-      {'code': 'review', 'name': '瀹℃牳',status: 'primary'},
+      {'code': 'remarks', 'name': t('order.processingNote')},
+      {'code': 'Craft', 'name': t('craft.orderDetail'),status: 'primary'},
+      {'code': 'review', 'name': t('basicData.review'),status: 'primary'},
     ],
     // import: false,
     // export: true,
@@ -85,7 +86,7 @@
     return[
       columns.map((column, columnIndex) => {
         if (columnIndex === 0) {
-          return '鍚堣:'
+          return t('basicData.total')
         }
         // if (props.tableProp.footList.includes(column.field)) {
         //   return sumNum(data, column.field)
@@ -198,7 +199,7 @@
       if(res.data.order.processReview === 2 ){
         //gridOptions.toolbarConfig.buttons[2].disabled = false
         gridOptions.toolbarConfig.buttons[2].code='reviews'
-        gridOptions.toolbarConfig.buttons[2].name='鍙嶅'
+        gridOptions.toolbarConfig.buttons[2].name=t('basicData.cancelReview')
 
       }
 
@@ -223,13 +224,11 @@
     if(res.code==200){
       gridOptions.toolbarConfig.buttons[2].disabled = true
       if(state==2){
-        ElMessage.success('瀹℃牳鎴愬姛锛�')
+        ElMessage.success(t('basicData.msg.reviewSuccess'))
       }else if (state==0){
-        ElMessage.success('鍙嶅鎴愬姛锛�')
+        ElMessage.success(t('basicData.msg.cancelReviewSuccess'))
       }
-      setTimeout(() =>{
-        location.reload()
-      },1500)
+      router.push({path:'/main/order/updateOrderCraft',query:{orderId:titleUploadData.value.orderId,random:Math.random()}})
 
     }else{
       ElMessage.error(res.msg)
@@ -247,25 +246,25 @@
 
     <div class="order-primary" style="background-color: white">
       <el-row>
-        <el-col  :span="4"><el-text>閿�鍞崟鍙凤細</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('order.orderId')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{titleUploadData.orderId}}</el-text></el-col>
-        <el-col  :span="4"><el-text>瀹㈡埛鍚嶇О锛�</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('customer.customerName')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{titleUploadData.customerName}}</el-text></el-col>
-        <el-col  :span="4"><el-text>椤圭洰鍚嶇О锛�</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('order.project')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{titleUploadData.project}}</el-text></el-col>
       </el-row>
       <el-row>
-        <el-col  :span="4"><el-text>璁㈠崟鎵规锛�</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('order.batch')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{titleUploadData.batch}}</el-text></el-col>
-        <el-col  :span="4"><el-text>璁㈠崟绫诲瀷锛�</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('order.orderType')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{ titleUploadData.orderType }}</el-text></el-col>
-        <el-col  :span="4"><el-text>涓氬姟鍛�</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('order.salesman')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{titleUploadData.salesman}}</el-text></el-col>
       </el-row>
       <el-row>
-        <el-col  :span="4"><el-text>鍖呰鏂瑰紡锛�</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('order.packType')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{titleUploadData.packType}}</el-text></el-col>
-        <el-col  :span="4"><el-text>浜よ揣鏃ユ湡锛�</el-text></el-col>
+        <el-col  :span="4"><el-text>{{t('order.deliveryDate')}}</el-text></el-col>
         <el-col  :span="4"><el-text>{{titleUploadData.deliveryDate}}</el-text></el-col>
       </el-row>
     </div>
@@ -291,7 +290,7 @@
 
         <!--宸﹁竟鍥哄畾鏄剧ず鐨勬彃妲�-->
         <template #button_slot="{ row }">
-          <el-button @click="updateCraft(row)" link type="primary" size="small">淇敼宸ヨ壓</el-button>
+          <el-button @click="updateCraft(row)" link type="primary" size="small">{{t('craft.updateCraft')}}</el-button>
         </template>
 
         <template #num1_filter="{ column, $panel }">
@@ -304,7 +303,7 @@
       </vxe-grid>
 
     </div>
-    <el-dialog v-model="dialogTableVisible" title="鍔犲伐瑕佹眰" style="width: 60%;height:75% ">
+    <el-dialog v-model="dialogTableVisible" :title="$t('order.processingNote')" style="width: 60%;height:75% ">
       <el-input
           v-model="titleUploadData.processingNote"
           type="textarea"
@@ -312,8 +311,8 @@
       />
     </el-dialog>
 
-    <el-dialog v-model="craftVisible" title="宸ヨ壓娴佺▼" style="width: 60%;height:60% ;position: relative;" >
-      <h5>宸ヨ壓灞炴��</h5>
+    <el-dialog v-model="craftVisible" :title="$t('craft.technologicalProcess')" style="width: 60%;height:60% ;position: relative;" >
+      <h5>{{$t('craft.processAttribute')}}</h5>
       <el-checkbox
           v-model="craftObj.newCraft"
           v-for="item in process"
@@ -324,16 +323,16 @@
       <el-row style="width: 90%;border: 0;position: absolute;bottom: 1rem; left: 50%;transform: translateX(-50%);">
 
         <span class="ml-3 w-35 text-gray-600 inline-flex items-center"
-        >鍘熸祦绋�:
+        >{{$t('craft.oldProcess')}}:
         </span>
         <el-input :value="oldCraftComputed" disabled class="w-50 m-2" />
         <span class="ml-3 w-35 text-gray-600 inline-flex items-center"
-        >娴佺▼:
+        >{{$t('craft.newProcess')}}:
         </span>
         <el-input :value="newCraftComputed" disabled class="w-50 m-2" />
         <el-col style="margin-top: 0.5rem">
-          <el-button type="primary" @click="resetCraft">閲嶇疆</el-button>
-          <el-button type="primary" @click="saveCraft">淇濆瓨</el-button>
+          <el-button type="primary" @click="resetCraft">{{$t('craft.reset')}}</el-button>
+          <el-button type="primary" @click="saveCraft">{{$t('basicData.save')}}</el-button>
         </el-col>
       </el-row>
 
diff --git a/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue b/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue
index 14e1fe8..0827a21 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/product/CreateProduct.vue
@@ -548,7 +548,7 @@
               @click="updateHollowSure"
               size="small"
               type="primary"
-              round>澶瑰眰闂撮殧鐗╀慨鏀�</el-button>
+              round>涓┖闂撮殧鐗╀慨鏀�</el-button>
         </div>
         <div class="glass-spacer-zk">
           <el-select
@@ -740,7 +740,6 @@
           <el-col :span="16">
             <el-input
                 :value="item.detail"
-                value="5mm鐧界幓"
                 size="small"
                 disabled  />
           </el-col>
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java
index e77246f..a2ac667 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/userInfo/SysMenuController.java
@@ -21,7 +21,6 @@
     private SysMenuService sysMenuService;
     @GetMapping("/getMenu/{lang}")
     public Result getMenu(@PathVariable String lang){
-        System.out.println(lang);
         MyChannelHandlerPool myChannelHandlerPool = new MyChannelHandlerPool();
         //myChannelHandlerPool.sendMsg("123");
         //MyChannelHandlerPool.channelGroup.writeAndFlush( new TextWebSocketFrame("123123"));

--
Gitblit v1.8.0