From 2eed507a4dfffda298bcd3de479a66db5a69bbab Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期二, 30 一月 2024 10:42:44 +0800
Subject: [PATCH] 修改订单明细实体类

---
 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue |  166 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 111 insertions(+), 55 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 84117ac..c6203f3 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
@@ -5,7 +5,8 @@
 import {ElMessage} from "element-plus"
 import request from "@/utils/request"
 import deepClone from "@/utils/deepClone"
-
+import  useUserInfoStore from '@/stores/userInfo'
+const userStore = useUserInfoStore()
 const router = useRouter()
 const xGrid = ref()
 const gridOptions = reactive({
@@ -13,7 +14,7 @@
   keepSource: true,//淇濇寔婧愭暟鎹�
   align: 'center',//鏂囧瓧灞呬腑
   stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
   id: 'OrderList',
   showFooter: true,//鏄剧ず鑴�
   printConfig: {},
@@ -168,7 +169,6 @@
             ElMessage.error('娌℃湁琛ㄦ牸鏁版嵁锛�')
             return
           }
-          console.log($grid.getTableData().tableData)
           if ($grid) {
             const errMap = await $grid.validate(true)
             if (errMap) {
@@ -216,11 +216,29 @@
 const titleUploadData = ref({
   project:'',
   orderType:'',
-  alType:'',
+  customerId:'',
+  customerName:'',
   icon:'',
   orderClassify:'',
   packType:'',
-  deliveryDate:''
+  orderId:'',
+  deliveryDate:'',
+  batch:'',
+  calculateType:'',
+  salesmanId:'',
+  salesman:'',
+  alType:'',
+  money:'',
+  contractId:'',
+  customerBatch:'',
+  contacts:'',
+  contactNumber:'',
+  deliveryAddress:'',
+  otherMoney:'',
+  otherMoneyRemarks:'',
+  processingNote:'',
+  creatorId:userStore.user.userName,
+  creator:userStore.user.userId,
 })
 
 //瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
@@ -230,16 +248,19 @@
   icon:[],
   orderClassify:[],
   packType:[],
+  customer:[],
+  saleMan:[]
 })
 //椤甸潰绗竴娆″姞杞芥墽琛�
 request.get(`/basicData/orderBasicData`).then((res) => {
+
   if(res.code==200){
     titleSelectJson.value=deepClone(res.data)
-    titleUploadData.value.orderType = titleSelectJson.value.orderType[0].id
-    titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].id
-    titleUploadData.value.icon = titleSelectJson.value.icon[0].id
-    titleUploadData.value.packType = titleSelectJson.value.packType[0].id
-    titleUploadData.value.alType = titleSelectJson.value.alType[0].id
+    titleUploadData.value.orderType = titleSelectJson.value.orderType[0].basicName
+    titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].basicName
+    titleUploadData.value.icon = titleSelectJson.value.icon[0].basicName
+    titleUploadData.value.packType = titleSelectJson.value.packType[0].basicName
+    titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName
     const today = new Date
     today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000))
     titleUploadData.value.deliveryDate = today.getFullYear() +
@@ -261,21 +282,36 @@
 }
 
 
-
-
-const countAmount = (row) => {
-  return
+const changeCustomer =  () => {
+  const changedCustomerId = titleUploadData.value.customerId
+  const customer = titleSelectJson.value.customer.filter(item => item.id === changedCustomerId)
+  titleUploadData.value.customerName = customer[0].customerName
+  //titleSelectJson.value.customer
 }
+
+const changeSaleMan = () => {
+  const changedSaleManId = titleUploadData.value.salesmanId
+  const SaleMan = titleSelectJson.value.saleMan.filter(item => item.id === changedSaleManId)
+  titleUploadData.value.salesman = SaleMan[0].basicName
+}
+
 const area = (row) => {
   return parseFloat((row.width * row.height/1000000).toFixed(2))
 }
 const countArea = (row) => {
-  return parseFloat((row.width * row.height/1000000).toFixed(2))*row.quantity
+  const area = parseFloat((row.width * row.height/1000000).toFixed(2))
+  return parseFloat((area * row.quantity).toFixed(2))
 }
 
-
+const countMoney = (list) => {
+  let  countMoney = 0
+  list.forEach((item)=>{
+    countMoney += parseFloat(item.grossAmount)
+  })
+  return countMoney
+}
 //瀵煎叆鍔熻兘
-const impotEvent = async () => {
+const importEvent = async () => {
   const $grid = xGrid.value
   const { files } = await $grid.readFile({
     types: ['xls', 'xlsx']
@@ -290,13 +326,15 @@
       return
     }
     jsonData.forEach((item,index) => {
-      //item.computeArea
-      //console.log()
       if(item.computeArea === undefined){
         item.computeArea = area(item)
       }
-      item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toString())
+      item.area = area(item)
+      item.grossArea = countArea(item)
+      item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2))
+      item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2))
     })
+    titleUploadData.value.money=countMoney(jsonData).toString()
 
     xGrid.value.loadData(jsonData)
   }
@@ -311,11 +349,13 @@
       row.grossArea = countArea(row)
       row.computeArea = row.area
       row.computeGrossArea = row.grossArea
-      row.grossAmount=row.price * row.computeGrossArea
+      row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
    }else if(column.property === 'computeArea'){
-     row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toString())
-     row.grossAmount=row.price * row.computeGrossArea
+     row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toFixed(2))
+     row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2))
    }
+
+    titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString()
 }
 </script>
 
@@ -324,11 +364,19 @@
     <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-input/></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-select  clearable placeholder=" " >
-            <el-option/>
+          <el-select  v-model="titleUploadData.customerId"
+                      @change="changeCustomer"
+                      filterable
+                      clearable
+                      placeholder="" >
+            <el-option v-for="item in titleSelectJson['customer']"
+                       :key="item.id"
+                       :label="item.id+' '+item.customerName"
+                       :value="item.id"
+                       />
           </el-select>
         </el-col>
         <el-col  :span="2"><el-text>*璁㈠崟绫诲瀷锛�</el-text></el-col>
@@ -338,64 +386,72 @@
                 v-for="item in titleSelectJson['orderType']"
                 :key="item.id"
                 :label="item.basicName"
-                :value="item.id"
+                :value="item.basicName"
             />
           </el-select>
         </el-col>
         <el-col  :span="2"><el-text>璁㈠崟鍒嗙被锛�</el-text></el-col>
         <el-col  :span="2">
-          <el-select v-model="titleUploadData.orderClassify" clearable placeholder=" " >
+          <el-select v-model="titleUploadData.orderClassify"  clearable placeholder=" " >
             <el-option
                 v-for="item in titleSelectJson['orderClassify']"
                 :key="item.id"
                 :label="item.basicName"
-                :value="item.id"
+                :value="item.basicName"
             />
           </el-select>
         </el-col>
         <el-col  :span="2"><el-text>鍟嗘爣閫夐」锛�</el-text></el-col>
         <el-col  :span="2">
-          <el-select v-model="titleUploadData.icon" clearable placeholder=" " >
+          <el-select v-model="titleUploadData.icon"  clearable placeholder=" " >
             <el-option  v-for="item in titleSelectJson['icon']"
                        :key="item.id"
                        :label="item.basicName"
-                       :value="item.id"/>
+                       :value="item.basicName"/>
           </el-select>
         </el-col>
         <el-col  :span="2"><el-text>鍖呰鏂瑰紡锛�</el-text></el-col>
         <el-col  :span="2">
-          <el-select v-model="titleUploadData.packType" clearable placeholder=" " >
+          <el-select v-model="titleUploadData.packType"  clearable placeholder=" " >
             <el-option v-for="item in titleSelectJson['packType']"
                        :key="item.id"
                        :label="item.basicName"
-                       :value="item.id"/>
+                       :value="item.basicName"/>
           </el-select>
         </el-col>
         <!--      <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  /></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-date-picker
               v-model="titleUploadData.deliveryDate"
               type="date"
-              placeholder="Pick a day"
+              placeholder=""
               />
         </el-col>
         <el-col  :span="2"><el-text>鎵规锛�</el-text></el-col>
-        <el-col  :span="2"><el-input/></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-select  clearable placeholder=" " >
-            <el-option/>
+          <el-select v-model="titleUploadData.calculateType"  clearable placeholder=" " >
+            <el-option value="1" label="1"/>
           </el-select>
         </el-col>
         <el-col  :span="2"><el-text>*涓氬姟鍛橈細</el-text></el-col>
         <el-col  :span="2">
-          <el-select  clearable placeholder=" " >
-            <el-option/>
+          <el-select
+              v-model="titleUploadData.salesmanId"
+              @change = "changeSaleMan"
+              clearable
+              placeholder=" "
+          >
+            <el-option v-for="item in titleSelectJson['saleMan']"
+                       :key="item.id"
+                       :label="item.basicName"
+                       :value="item.id"/>
           </el-select>
         </el-col>
         <el-col  :span="2"><el-text>閾濇潯鏂瑰紡锛�</el-text></el-col>
@@ -404,32 +460,32 @@
             <el-option v-for="item in titleSelectJson['alType']"
                        :key="item.id"
                        :label="item.basicName"
-                       :value="item.id"/>
+                       :value="item.basicName"/>
           </el-select>
         </el-col>
       </el-row>
       <el-row>
         <el-col  :span="2"><el-text>鎬婚噾棰濓細</el-text></el-col>
-        <el-col  :span="2"><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-input/></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 /></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-input/></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-input/></el-col>
-        <el-col  :span="2"><el-text>閫佽揣鍦板潃锛�</el-text></el-col>
-        <el-col  :span="2"><el-input/></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-input v-model="titleUploadData.deliveryAddress"/></el-col>
       </el-row>
-      <el-row>
-        <el-col  :span="2"><el-text>鍏朵粬閲戦锛�</el-text></el-col>
-        <el-col  :span="2"><el-text /></el-col>
-        <el-col  :span="2"><el-text>鍏朵粬閲戦澶囨敞锛�</el-text></el-col>
-        <el-col  :span="2"><el-text /></el-col>
+<!--      <el-row>-->
+<!--        <el-col  :span="2"><el-text>鍏朵粬閲戦锛�</el-text></el-col>-->
+<!--        <el-col  :span="2"><el-text /></el-col>-->
+<!--        <el-col  :span="2"><el-text>鍏朵粬閲戦澶囨敞锛�</el-text></el-col>-->
+<!--        <el-col  :span="2"><el-text /></el-col>-->
 
-      </el-row>
+<!--      </el-row>-->
     </div>
     <div class="order-detail">
       <vxe-grid
@@ -448,7 +504,7 @@
           </div>
         </template>
         <template #toolbar_buttons>
-          <vxe-button  @click="impotEvent">瀵煎叆</vxe-button>
+          <vxe-button  @click="importEvent">瀵煎叆</vxe-button>
         </template>
 
 

--
Gitblit v1.8.0