From 5e5291e7c7978e4905b1249b7e562d689d89586d Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期二, 02 一月 2024 11:29:47 +0800
Subject: [PATCH] 出入库产品列表添加从..出库,到..位置

---
 src/views/overview/AddOverviewDialog.vue         |   65 ++++++++++++++++++++++++++------
 src/views/overview/OverviewListView.vue          |   10 ++++-
 src/common/untils/request.js                     |    2 
 src/components/makepager/CommonFormTableView.vue |   28 +++++++++++++-
 4 files changed, 87 insertions(+), 18 deletions(-)

diff --git a/src/common/untils/request.js b/src/common/untils/request.js
index 305a6f6..6bef5a9 100644
--- a/src/common/untils/request.js
+++ b/src/common/untils/request.js
@@ -25,7 +25,7 @@
     prod:`//${window.location.hostname}:9080`,
     test:`//192.168.20.119:9080`,
     // 鎯宠烦鍒版湰鍦板惎鍔ㄧ殑鐧诲綍椤电殑璇濋渶瑕佹妸dev鏀规垚浣犳湰鍦伴」鐩矾寰�
-    dev: `//192.168.20.158:8080`
+    dev: `//192.168.8.112:8080`
   }
 
   return loginPathMap[environmentType()]
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index fae8e86..26afa06 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -285,6 +285,25 @@
                   </template>
                 </div>
               </el-form-item>
+              <!-- 浠� -->
+              <el-form-item v-else-if="item.formLocation" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
+                <div class="custom-name">
+                  <span v-if="scope.row.isEdit || scope.row.editable">{{ scope.row.formLocation }}</span>
+                  <el-autocomplete
+                    v-else
+                    style="width: 100%"
+                    v-model="scope.row.productCategory"
+                    @focus="productTypeFocus"
+                    :fetch-suggestions="
+                      (queryString, callback) => {
+                        querySearchAsync(queryString, callback, 'formLocation')
+                      }
+                    "
+                    value-key="name"
+                    @select="handleSelectClient('formLocation', $event)"
+                  ></el-autocomplete>
+                </div>
+              </el-form-item>
               <!-- 浜у搧绫诲埆 -->
               <el-form-item
                 v-else-if="item.productType"
@@ -369,7 +388,7 @@
         <slot name="tableButton" />
       </el-table>
     </el-form>
-    <div v-if="!detailEnter && !isinventory && !islistingrules && !isReorder" style="margin: 10px">
+    <div v-if="!detailEnter && !isinventory  && !isReorder" style="margin: 10px">
       <el-button size="small" type="primary" @click="add">娣诲姞鏄庣粏琛�</el-button>
       <!-- <el-button size="small" type="primary" @click="empty">娓呯┖</el-button> -->
     </div>
@@ -458,7 +477,8 @@
       locacionId: 0,
       productName: "",
       productId: "",
-      initialPosition: ""
+      initialPosition: "",
+      formLocationList:[],
     }
   },
   created() {
@@ -497,6 +517,7 @@
         }
       })
     },
+    // 涓嬫媺鎼滅储
     async handleSelectClient(value, item) {
       this.$emit("selProductClick", value, item)
       if (value === "product") {
@@ -527,6 +548,8 @@
         restaurants = this.productNameOptions
       } else if (value === "productType") {
         restaurants = this.productTypeNameOptions
+      }else if(value==="formLocation"){
+        restaurants = this.selLocationOptions
       }
       var results = queryString ? restaurants.filter(this.createStateFilter(queryString, value)) : restaurants
       cb(results)
@@ -573,6 +596,7 @@
         }
       })
     },
+
     // 浣嶇疆
     async getLocationList() {
       this.locacionName = ""
diff --git a/src/views/overview/AddOverviewDialog.vue b/src/views/overview/AddOverviewDialog.vue
index 9956ae6..e4cb86c 100644
--- a/src/views/overview/AddOverviewDialog.vue
+++ b/src/views/overview/AddOverviewDialog.vue
@@ -203,9 +203,10 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item v-if="workType !== 1" label="婧愪綅缃�" prop="fromLocationId">
+                <el-form-item v-if="workType !== 1" label="婧愪綅缃�" prop="location">
                   <el-select
-                    v-model="editConfig.infomation.fromLocationId"
+                    @change="rootLocationChange"
+                    v-model="editConfig.infomation.location"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 90%"
@@ -215,7 +216,7 @@
                       v-for="item in toLocationOptions"
                       :key="item.id"
                       :label="item.jointName"
-                      :value="item.id"
+                      :value="{label:item.jointName,value:item.id}"
                     >
                     </el-option>
                   </el-select>
@@ -297,6 +298,8 @@
             <!-- 鎿嶄綔 -->
             <div v-if="activeName === 'first'">
               <CommonFormTableView
+                ref="tableView"
+                :islistingrules="true"
                 :product-table-list="productTableList"
                 :detail-enter="!showFooter"
                 @inputContent="inputContent"
@@ -486,7 +489,7 @@
         sourceNumber: [{ required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" }],
         operationDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" }],
         toLocationId: [{ required: true, message: "璇烽�夋嫨浠撳簱浣嶇疆", trigger: "change" }],
-        fromLocationId: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }],
+        location: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }],
         operationTypeId: [{ required: true, message: "璇烽�夋嫨鍏ュ簱绫诲瀷", trigger: "change" }],
         number: [{ required: true, validator: this.validateCheckCode, trigger: ["change", "blur"] }]
       },
@@ -747,8 +750,19 @@
           if (this.isNoProduct) {
             this.$message.error("璇锋坊鍔犳槑缁嗚鎴栭�夋嫨浜у搧涓嶈兘涓虹┖")
           } else {
-            let requestUrl = this.editConfig.title === "鏂板缓" ? addOperation : updateOperation
             let params = this.saveParams()
+            if(this.workType===2){
+              params.details.map((item)=>{
+                item.fromLocationId=item.fromLocationId.value
+              })
+            }else if(this.workType===3){
+              params.details.map((item)=>{
+                item.fromLocationId=item.fromLocationId.value
+                item.toLocationId=item.toLocationId.value
+              })
+            }
+            let requestUrl = this.editConfig.title === "鏂板缓" ? addOperation : updateOperation
+            // let params = this.saveParams()
             requestUrl({
               ...params
             }).then((res) => {
@@ -794,13 +808,13 @@
         contacterID: contacterID,
         contacterName: contacterName,
         details: this.tableData,
-        fromLocationId: data.fromLocationId || 0,
+        locationId: data.location.value || 0,
         id: data.id,
         number: data.number || "",
         operationDate: data.operationDate || "",
         operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
         operationTypeName: this.receiptType,
-        sourceNumber: data.sourceNumber || "",
+        sourceNumber:data.sourceNumber || "" ,
         status: 3,
         toLocationId: data.toLocationId || 0,
         waybillNumber: data.waybillNumber || "",
@@ -843,16 +857,32 @@
         this.tableData = []
       }
       // this.tableData = this.editConfig.title !== "鏂板缓" ? list : []
-      this.productTableList = {
-        tableData: this.tableData,
-        tableColumn: [
+      let tableColumnArr=[]
+      if(this.workType===1){
+        tableColumnArr= [
           { label: "浜у搧", prop: "productName", productName: true, isRequird: true },
-          // { label: "璇存槑", prop: "number", input: true },
-          // { label: "鏃ユ湡", prop: "amount", date: true, isRequird: true },
-          // { label: "鎴鏃ユ湡", prop: "price", date: true },
           { label: "鏁伴噺", prop: "amount", inputFloat: true },
           { label: "璁¢噺鍗曚綅", prop: "unit" }
         ]
+      }else if(this.workType===2){
+        tableColumnArr = [
+          { label: "浜у搧", prop: "productName", productName: true, isRequird: true },
+          { label: "浠�", prop: "fromLocationId", sonLocation: true, isRequird: true },
+          { label: "鏁伴噺", prop: "amount", inputFloat: true },
+          { label: "璁¢噺鍗曚綅", prop: "unit" }
+        ]
+      }else if(this.workType===3){
+        tableColumnArr = [
+          { label: "浜у搧", prop: "productName", productName: true, isRequird: true },
+          { label: "浠�", prop: "fromLocationId", sonLocation: true, isRequird: true },
+          { label: "鑷�", prop: "toLocationId", toLocation: true },
+          { label: "鏁伴噺", prop: "amount", inputFloat: true },
+          { label: "璁¢噺鍗曚綅", prop: "unit" }
+        ]
+      }
+      this.productTableList = {
+        tableData: this.tableData,
+        tableColumn: tableColumnArr
       }
     },
     // 鎿嶄綔杈撳叆
@@ -1029,6 +1059,15 @@
           console.error(error)
         }
       }
+    },
+    // 婧愪綅缃�夋嫨
+    rootLocationChange(val){
+      this.productTableList.tableData.map((item)=>{
+        console.log(item,"item")
+        item.toLocationId={}
+        item.fromLocationId={}
+      })
+      this.$refs.tableView.setLocationList(val.label)
     }
   }
 }
diff --git a/src/views/overview/OverviewListView.vue b/src/views/overview/OverviewListView.vue
index 777378c..19b3bd4 100644
--- a/src/views/overview/OverviewListView.vue
+++ b/src/views/overview/OverviewListView.vue
@@ -247,8 +247,8 @@
           const list = res.data.map((item) => {
             return {
               ...item,
-              from: item.fromLocation.name,
-              to: item.toLocation.name
+              // from: item.fromLocation.name,
+              // to: item.toLocation.name
             }
           })
           this.tableList.tableInfomation = list || []
@@ -268,6 +268,12 @@
       this.editConfig.visible = true
       this.editConfig.title = val
       this.editConfig.operationTypeId = this.params.id
+      this.editConfig.code = this.params.code
+      row.details.map((item)=>{
+        item.fromLocationId=item.fromLocation.jointName
+        item.toLocationId=item.toLocation.jointName
+      })
+      row.locationID=row.location.jointName
       this.editConfig.infomation = { ...row }
     },
     // 鏂板缓

--
Gitblit v1.8.0