From c8ebeb63d549adf498e7c3fbd2cf91ba8923e5f0 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期五, 02 二月 2024 15:39:52 +0800
Subject: [PATCH] 重新上传差异问题

---
 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue |  207 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 148 insertions(+), 59 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..f346c66 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,9 @@
 import {ElMessage} from "element-plus"
 import request from "@/utils/request"
 import deepClone from "@/utils/deepClone"
-
+import  useUserInfoStore from '@/stores/userInfo'
+let dialogTableVisible = ref(false)
+const userStore = useUserInfoStore()
 const router = useRouter()
 const xGrid = ref()
 const gridOptions = reactive({
@@ -13,7 +15,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: {},
@@ -159,6 +161,10 @@
     const $grid = xGrid.value
     if ($grid) {
       switch (code) {
+        case 'remarks':  {
+          dialogTableVisible.value=true
+          break
+        }
         case 'Craft': {
           await router.push({path: '/main/order/updateOrderCraft', query: {orderID: 12123}})
           break
@@ -168,7 +174,27 @@
             ElMessage.error('娌℃湁琛ㄦ牸鏁版嵁锛�')
             return
           }
-          console.log($grid.getTableData().tableData)
+          const project = titleUploadData.value.project
+          if(project === null || project === undefined || project === ''){
+            ElMessage.error('杈撳叆椤圭洰鍚嶇О锛�')
+            return
+          }
+          const customer = titleUploadData.value.customerId
+          if(customer === null || customer === undefined || customer === ''){
+            ElMessage.error('璇烽�夋嫨瀹㈡埛锛�')
+            return
+          }
+          const salasMan = titleUploadData.value.salesman
+          if(salasMan === null || salasMan === undefined || salasMan === ''){
+            ElMessage.error('璇烽�夋嫨涓氬姟鍛橈紒')
+            return
+          }
+          const calculateType = titleUploadData.value.calculateType
+          if(calculateType === null || calculateType === undefined || calculateType === ''){
+            ElMessage.error('璇烽�夋嫨璁$畻鏂瑰紡锛�')
+            return
+          }
+
           if ($grid) {
             const errMap = await $grid.validate(true)
             if (errMap) {
@@ -216,11 +242,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 +274,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() +
@@ -253,29 +300,45 @@
 const saveOrder = (order) => {
   request.post(`/order/saveOrder`,order).then((res) => {
     if(res.code==200){
+      location.reload()
       ElMessage.success('淇濆瓨鎴愬姛')
     }else {
-      ElMessage.warning(res.msg)
+      ElMessage.error(res.msg)
     }
   })
 }
 
 
-
-
-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']
@@ -286,18 +349,20 @@
     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('瀵煎叆鏁版嵁涓嶈兘瓒呰繃240鏉�,璇峰垎璁㈠崟瀵煎叆')
+      ElMessage.error(`瀵煎叆${jsonData.length}鏉�,鏁版嵁涓嶈兘瓒呰繃240鏉�,璇峰垎璁㈠崟瀵煎叆`)
       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)
   }
   fileReader.readAsBinaryString(files[0])
@@ -311,11 +376,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 +391,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 +413,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 +487,31 @@
             <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,12 +530,19 @@
           </div>
         </template>
         <template #toolbar_buttons>
-          <vxe-button  @click="impotEvent">瀵煎叆</vxe-button>
+          <vxe-button  @click="importEvent">瀵煎叆</vxe-button>
         </template>
 
 
       </vxe-grid>
     </div>
+    <el-dialog v-model="dialogTableVisible" title="鍔犲伐瑕佹眰" style="width: 60%;height:75% ">
+      <el-input
+          v-model="titleUploadData.processingNote"
+          type="textarea"
+          :autosize="{ minRows: 2, maxRows: 20 }"
+      />
+    </el-dialog>
   </div>
 </template>
 

--
Gitblit v1.8.0