From 6965db086df978e46e0a1bd7227b981ad48a9b1c Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 20 二月 2024 16:19:52 +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/CreateOrder.vue |  224 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 154 insertions(+), 70 deletions(-)

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 f346c66..92b18e1 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
@@ -1,6 +1,6 @@
 <script lang="ts"  setup>
-import {reactive, ref} from "vue"
-import {useRouter} from "vue-router"
+import {onMounted, reactive, ref, watch} from "vue"
+import {useRouter,useRoute} from "vue-router"
 import * as XLXS from "xlsx"
 import {ElMessage} from "element-plus"
 import request from "@/utils/request"
@@ -9,7 +9,55 @@
 let dialogTableVisible = ref(false)
 const userStore = useUserInfoStore()
 const router = useRouter()
+const route = useRoute()
 const xGrid = ref()
+// 瀹氫箟琛ㄥご涓婁紶鏁版嵁
+const titleUploadData = ref({
+  project:'',
+  orderType:'',
+  customerId:'',
+  customerName:'',
+  icon:'',
+  orderClassify:'',
+  packType:'',
+  orderId:'',
+  deliveryDate:'',
+  batch:'',
+  calculateType:'',
+  salesmanId:'',
+  salesman:'',
+  alType:'',
+  money:'',
+  contractId:'',
+  customerBatch:'',
+  contacts:'',
+  contactNumber:'',
+  deliveryAddress:'',
+  otherMoney:'',
+  otherMoneyRemarks:'',
+  processingNote:'',
+  createOrder:0,
+  creatorId:userStore.user.userName,
+  creator:userStore.user.userId,
+})
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+  orderType:[],
+  alType:[],
+  icon:[],
+  orderClassify:[],
+  packType:[],
+  customer:[],
+  saleMan:[]
+})
+let filterData = ref({})
+const filterChanged = ({ option, row, column }) => {
+  if (option.data) {
+    return row[column.field].toString().toLowerCase().indexOf(option.data) > -1
+  }
+  return true
+  //@filter-change="filterChanged"
+}
 const gridOptions = reactive({
   border:  "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
@@ -37,7 +85,7 @@
     useKey: true
   },
   filterConfig: {   //绛涢�夐厤缃」
-    remote: true
+    //remote: true  //杩滅绛涢��
   },
   customConfig: {
     storage: true
@@ -48,25 +96,24 @@
     showStatus: true
   },//琛ㄥご鍙傛暟
   columns:[
-    // {title: '鎿嶄綔', width: 110,fixed:"left",slots: { default: 'openProductList' }},
     {type: 'seq',fixed:"left", title: '鑷簭', width: 80 },
-    {field: 'buildingNumber',width:120,  title: '妤煎彿',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'productId',width:140,  title: '浜у搧ID',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'productName',width:120,  title: '浜у搧',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'price',width:140,  title: '鍗曚环',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'quantity',width:120,  title: '鏁伴噺',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'grossAmount',width:120,  title: '鎬婚噾棰�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'width',width:120,  title: '瀹�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'height',width:120,  title: '楂�',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'area',width:150,  title: '瀹為檯鍗曠墖闈㈢Н',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true},
-    {field: 'grossArea',width:140,  title: '瀹為檯鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter'}, sortable: true},
-    {field: 'computeArea',width:180,  title: '缁撶畻鍗曠墖闈㈢Н',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'computeGrossArea',width:140,  title: '缁撶畻鎬婚潰绉�',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'shape',width:120,  title: '褰㈢姸',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'bendRadius',width:140,  title: '寮挗寮у害',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'edgingType',width:140,  title: '纾ㄨ竟绫诲瀷',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'processingNote',width:140,  title: '鍔犲伐瑕佹眰',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true},
-    {field: 'remarks',width:120,  title: '澶囨敞',editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}
+    // {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}
 
 
   ],
@@ -83,7 +130,7 @@
       {
         validator ({ cellValue }) {
           const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
+          if ( !regex.test(cellValue) ) {
             return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
           }
         }
@@ -93,7 +140,7 @@
       {
         validator ({ cellValue }) {
           const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
+          if (!regex.test(cellValue)) {
             return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
           }
         }
@@ -106,7 +153,7 @@
       {
         validator ({ cellValue }) {
           const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
+          if (!regex.test(cellValue)) {
             return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
           }
         }
@@ -116,7 +163,7 @@
       {
         validator ({ cellValue }) {
           const regex = /^(0|[1-9][0-9]{0,4}([.][0-9]{1,2})?)$/
-          if (cellValue && !regex.test(cellValue)) {
+          if ( !regex.test(cellValue)) {
             return new Error('杈撳叆0.00~99999.99鐨勬暟瀛�')
           }
         }
@@ -126,9 +173,9 @@
   toolbarConfig: {
     buttons: [
       {'code': 'remarks', 'name': '鍔犲伐瑕佹眰'},
-      {'code': 'Craft', 'name': '宸ヨ壓',status: 'primary'},
-      {'code': 'add', 'name': '瀹℃牳',status: 'primary',disabled: true},
-      {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save'}
+      {'code': 'Craft', 'name': '宸ヨ壓',status: 'primary',disabled: true},
+      {'code': 'review', 'name': '瀹℃牳',status: 'primary',disabled: true},
+      {'code': 'saveOrder', 'name': '淇濆瓨',status: 'primary',icon: 'vxe-icon-save',disabled: false}
     ],
     slots: {
       tools: 'toolbar_buttons'
@@ -166,7 +213,15 @@
           break
         }
         case 'Craft': {
-          await router.push({path: '/main/order/updateOrderCraft', query: {orderID: 12123}})
+          await router.push({path: '/main/order/updateOrderCraft', query: {orderId: titleUploadData.value.orderId }})
+          break
+        }
+        case 'review': {
+          reviewOrder(2)
+          break
+        }
+        case 'reviews': {//鍙嶅
+          reviewOrder(0)
           break
         }
         case 'saveOrder': {
@@ -238,45 +293,44 @@
   }
 }
 
-// 瀹氫箟琛ㄥご涓婁紶鏁版嵁
-const titleUploadData = ref({
-  project:'',
-  orderType:'',
-  customerId:'',
-  customerName:'',
-  icon:'',
-  orderClassify:'',
-  packType:'',
-  orderId:'',
-  deliveryDate:'',
-  batch:'',
-  calculateType:'',
-  salesmanId:'',
-  salesman:'',
-  alType:'',
-  money:'',
-  contractId:'',
-  customerBatch:'',
-  contacts:'',
-  contactNumber:'',
-  deliveryAddress:'',
-  otherMoney:'',
-  otherMoneyRemarks:'',
-  processingNote:'',
-  creatorId:userStore.user.userName,
-  creator:userStore.user.userId,
+//鍒濆鍖栧垽鏂槸鍚︽湁id浼犲叆
+onMounted(()=>{
+  const str = route.query.orderId
+  if (typeof str === 'undefined' || str === null || str === '' || str === '\n' || str === '\r'){
+    return
+  }
+  request.post(`/order/getOrderById/${str}`).then((res) => {
+    if(res.code==200){
+      titleUploadData.value = res.data.order
+      //鍙栨秷宸ヨ壓鎸夐挳绂佺敤
+      gridOptions.toolbarConfig.buttons[1].disabled = false
+      //宸ヨ壓瀹℃牳鍚庝繚瀛樻寜閽鐢�
+      if(res.data.order.processReview === 2){
+        gridOptions.toolbarConfig.buttons[3].disabled = true
+      }
+      //鍙栨秷瀹℃牳鎸夐挳绂佺敤
+      if(res.data.order.processReview === 2 && res.data.order.orderReview === 0){
+        gridOptions.toolbarConfig.buttons[2].disabled = false
+      }
+
+      //鎸夐挳瀹℃牳杩囧悗鍙樹负鍙嶅
+      if(res.data.order.orderReview === 2){
+        gridOptions.toolbarConfig.buttons[2].disabled = false
+        gridOptions.toolbarConfig.buttons[2].code='reviews'
+        gridOptions.toolbarConfig.buttons[2].name='鍙嶅'
+      }
+      if(res.data.order.productionOrder !==0 ){
+        gridOptions.toolbarConfig.buttons[2].disabled = true
+      }
+
+
+      xGrid.value.reloadData(res.data.orderDetails)
+    }else{
+      ElMessage.error(res.msg)
+    }
+  })
 })
 
-//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
-const titleSelectJson = ref({
-  orderType:[],
-  alType:[],
-  icon:[],
-  orderClassify:[],
-  packType:[],
-  customer:[],
-  saleMan:[]
-})
 //椤甸潰绗竴娆″姞杞芥墽琛�
 request.get(`/basicData/orderBasicData`).then((res) => {
 
@@ -297,17 +351,36 @@
   }
 })
 
+//淇濆瓨璁㈠崟鏂规硶
 const saveOrder = (order) => {
   request.post(`/order/saveOrder`,order).then((res) => {
     if(res.code==200){
-      location.reload()
       ElMessage.success('淇濆瓨鎴愬姛')
+      router.push({path:'/main/order/selectOrder'})
     }else {
       ElMessage.error(res.msg)
     }
   })
 }
+// 瀹℃牳璁㈠崟
+const reviewOrder = (state) => {
+  request.post(`/order/reviewOrderById/${titleUploadData.value.orderId}/${state}`).then(res =>{
+    if(res.code==200){
+      gridOptions.toolbarConfig.buttons[2].disabled = true
+      if(state==2){
+        ElMessage.success('瀹℃牳鎴愬姛锛�')
+      }else if (state==0){
+        ElMessage.success('鍙嶅鎴愬姛锛�')
+      }
+      setTimeout(() =>{
+        location.reload()
+      },1500)
 
+    }else{
+      ElMessage.error(res.msg)
+    }
+  })
+}
 
 const changeCustomer =  () => {
   const changedCustomerId = titleUploadData.value.customerId
@@ -384,6 +457,15 @@
 
     titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString()
 }
+
+// 鎵嬪姩瑙﹀彂绛涢��
+const changeFilterEvent = (event, option, $panel) => {
+  // 鎵嬪姩瑙﹀彂绛涢��
+  $panel.changeOption(event, !!option.data, option)
+}
+
+
+
 </script>
 
 <template>
@@ -515,7 +597,7 @@
     </div>
     <div class="order-detail">
       <vxe-grid
-          max-height="97%"
+          max-height="100%"
           class="mytable-scrollbar"
           ref="xGrid"
           v-bind="gridOptions"
@@ -525,7 +607,9 @@
         <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)"/>
+              <input type="text"
+                     v-model="option.data"
+                     @input="changeFilterEvent($event, option, $panel)"/>
             </div>
           </div>
         </template>
@@ -566,7 +650,7 @@
   }
   .order-detail{
     width: 100%;
-    height: 80%;
+    height: 85%;
   }
 
 </style>
\ No newline at end of file

--
Gitblit v1.8.0