From b178412b35eb373972bc2ed418b39311f3967c61 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期五, 22 三月 2024 11:07:04 +0800
Subject: [PATCH] 库存调拨模块 修改为上下结构,显示对应的产品列表,样式调整,数据调试
---
src/views/overview/AddOverviewDialog.vue | 439 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 330 insertions(+), 109 deletions(-)
diff --git a/src/views/overview/AddOverviewDialog.vue b/src/views/overview/AddOverviewDialog.vue
index cb5614a..d65496a 100644
--- a/src/views/overview/AddOverviewDialog.vue
+++ b/src/views/overview/AddOverviewDialog.vue
@@ -203,38 +203,20 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item v-if="workType !== 1" label="婧愪綅缃�" prop="fromLocationId">
+ <el-form-item :label="workType === 1 ? '浠撳簱浣嶇疆' : '璋冨嚭浣嶇疆'" prop="location">
<el-select
- v-model="editConfig.infomation.fromLocationId"
+ @change="rootLocationChange"
+ v-model="editConfig.infomation.location"
placeholder="璇烽�夋嫨"
size="mini"
style="width: 90%"
:disabled="!showFooter"
>
<el-option
- v-for="item in toLocationOptions"
+ v-for="item in formLocationOptions"
:key="item.id"
:label="item.jointName"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item v-if="workType !== 2" label="浠撳簱浣嶇疆" prop="toLocationId">
- <el-select
- v-model="editConfig.infomation.toLocationId"
- placeholder="璇烽�夋嫨"
- size="mini"
- style="width: 90%"
- :disabled="!showFooter"
- >
- <el-option
- 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>
@@ -255,6 +237,26 @@
:key="item.id"
:label="item.name"
:value="{ value: item.id, label: item.name }"
+ >
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12" v-if="workType === 3">
+ <el-form-item label="璋冨叆浣嶇疆" prop="toLocation">
+ <el-select
+ @change="toLocationChange"
+ v-model="editConfig.infomation.toLocation"
+ placeholder="璇烽�夋嫨"
+ size="mini"
+ style="width: 90%"
+ :disabled="!showFooter"
+ >
+ <el-option
+ v-for="item in toLocationOptions"
+ :key="item.id"
+ :label="item.jointName"
+ :value="{ label: item.jointName, value: item.id }"
>
</el-option>
</el-select>
@@ -297,17 +299,24 @@
<!-- 鎿嶄綔 -->
<div v-if="activeName === 'first'">
<CommonFormTableView
+ ref="tableView"
+ :islistingrules="true"
+ :addTypeIdMultiple="true"
:product-table-list="productTableList"
:detail-enter="!showFooter"
@inputContent="inputContent"
@addProductClick="addProductClick('鎿嶄綔')"
+ @getSelectArray="getSelectArray"
+ @emptyProductClick="emptyProductClick"
+ @clearupProduct="clearupProduct"
>
<template v-if="showFooter" slot="tableButton">
<el-table-column label="鎿嶄綔" width="60" fixed="right" align="center">
<template slot-scope="scope">
- <div @click="handleDelClick(scope, '鎿嶄綔')">
+ <!-- <div @click="handleDelClick(scope, '鎿嶄綔')">
<i class="el-icon-delete"></i>
- </div>
+ </div> -->
+ <el-button type="text" size="small" @click.stop="handleDelClick(scope, '鎿嶄綔')">鍒犻櫎</el-button>
</template>
</el-table-column>
</template>
@@ -465,7 +474,10 @@
},
workType: {
type: Number,
- default: 1
+ default: function () {
+ // return JSON.parse(window.sessionStorage.getItem('paramsData')).workType|| 1;
+ return 1
+ }
},
addName: {
type: String,
@@ -485,8 +497,8 @@
rules: {
sourceNumber: [{ required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" }],
operationDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" }],
- toLocationId: [{ required: true, message: "璇烽�夋嫨浠撳簱浣嶇疆", trigger: "change" }],
- fromLocationId: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }],
+ toLocation: [{ 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"] }]
},
@@ -504,7 +516,8 @@
supplierOptions: [], //渚涘簲鍟�
clientOptions: [], //瀹㈡埛
memberOptions: [{ id: 1, name: "绠$悊鍛�" }],
- toLocationOptions: [], // 婧愪綅缃� 浠撳簱浣嶇疆
+ formLocationOptions: [], // 璋冨嚭浣嶇疆
+ toLocationOptions: [], // 浠撳簱浣嶇疆
showButton: true,
activeName: "first",
productTableList: {},
@@ -547,13 +560,22 @@
this.setBottonView()
this.setDetailTableForm()
this.getLocationList()
- this.receiptType = this.editConfig.title === "鏌ョ湅" ? this.editConfig.infomation.operationTypeName : this.addName
+ this.receiptType =
+ this.editConfig.title === "鏌ョ湅" || this.editConfig.title === "缂栬緫"
+ ? this.editConfig.infomation.operationTypeName
+ : this.addName
if (this.showOperationType) {
this.getListTransfer()
}
this.getLogisticCompanyList()
this.formInfo()
+ if (this.editConfig.title === "鏌ョ湅" || this.editConfig.title === "缂栬緫") {
+ setTimeout(() => {
+ this.$refs.tableView.setLocationList(this.editConfig.infomation.location.label)
+ }, 100)
+ }
},
+ mounted() {},
methods: {
formInfo() {
this.objCode.type = this.workType === 1 ? "鍏ュ簱缂栫爜" : this.workType === 2 ? "鍑哄簱缂栫爜" : "璋冩嫧缂栫爜"
@@ -606,11 +628,22 @@
})
}
},
- // 鑾峰彇浠撳簱浣嶇疆鍒楄〃
+ // 鑾峰彇璋冨嚭浣嶇疆/浠撳簱浣嶇疆鍒楄〃
async getLocationList() {
await getLocationList({
keyWord: "",
jointName: this.editConfig.code,
+ page: 0,
+ pageSize: 0
+ }).then((res) => {
+ console.log(res)
+ if (res.code === 200) {
+ this.formLocationOptions = res.data
+ }
+ })
+ await getLocationList({
+ keyWord: "",
+ // jointName: this.editConfig.code,
page: 0,
pageSize: 0
}).then((res) => {
@@ -744,12 +777,95 @@
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
+ // })
+ // }
+ // 浜у搧鍒楄〃瑙f瀯
+ if (this.editConfig.title === "缂栬緫" || this.editConfig.title === "鏌ョ湅") {
+ let arr = []
+ if (this.workType === 1) {
+ params.details.map((item) => {
+ arr.push({
+ operationId: item.operationId,
+ amount: item.amount,
+ productId: item.productId
+ })
+ })
+ params.details = arr
+ } else if (this.workType === 2) {
+ params.details.map((item) => {
+ if (item.fromLocationId.value) {
+ arr.push({
+ operationId: item.operationId,
+ amount: item.amount,
+ fromLocationId: item.fromLocationId.value,
+ productId: item.productId
+ })
+ } else {
+ arr.push({
+ operationId: item.operationId,
+ amount: item.amount,
+ fromLocationId: item.fromLocation.id,
+ productId: item.productId
+ })
+ }
+ })
+ params.details = arr
+ } else if (this.workType === 3) {
+ console.log(params.details, "鐪嬬湅")
+ params.details.map((item) => {
+ arr.push({
+ operationId: item.operationId,
+ amount: item.amount,
+ fromLocationId: item.fromLocationId.value ? item.fromLocationId.value : item.fromLocation.id,
+ toLocationId: item.toLocationId.value ? item.toLocationId.value : item.toLocation.id,
+ productId: item.productId
+ })
+ // if(item.fromLocationId.value){
+ // arr.push({
+ // operationId:item.operationId,
+ // amount:item.amount,
+ // fromLocationId:item.fromLocationId.value,
+ // toLocationId:item.toLocation.id,
+ // productId:item.productId,
+ // })
+ // }else{
+ // arr.push({
+ // operationId:item.operationId,
+ // amount:item.amount,
+ // fromLocationId:item.fromLocation.id,
+ // toLocationId:item.toLocation.id,
+ // productId:item.productId,
+ // })
+ // }
+ })
+ params.details = arr
+ }
+ } else if (this.editConfig.title === "鏂板缓") {
+ 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) => {
- console.log(res)
this.editConfig.visible = false
if (res.code === 200) {
if (this.editConfig.title === "鏂板缓") {
@@ -758,6 +874,8 @@
this.$message.success("缂栬緫鎴愬姛")
}
this.$parent.getData()
+ } else {
+ this.$message.success(res.msg)
}
})
}
@@ -783,30 +901,59 @@
contacterID = Object.keys(this.contacterObj).length === 0 ? data.contacterID : this.contacterObj.value
contacterName = Object.keys(this.contacterObj).length === 0 ? data.contacterName : this.contacterObj.label
}
- let params = {
- baseOperationType: data.baseOperationType,
- comment: data.comment || "",
- companyID: companyID,
- companyName: companyName,
- contacterID: contacterID,
- contacterName: contacterName,
- details: this.tableData,
- fromLocationId: data.fromLocationId || 0,
- id: data.id,
- number: data.number || "",
- operationDate: data.operationDate || "",
- operationTypeId: this.showOperationType ? data.operationTypeId : this.editConfig.operationTypeId,
- operationTypeName: this.receiptType,
- sourceNumber: data.sourceNumber || "",
- status: 3,
- toLocationId: data.toLocationId || 0,
- waybillNumber: data.waybillNumber || "",
- weight: data.weight || 0,
- logisticWeight: data.logisticWeight || 0,
- logisticCompanyId: data.logisticCompanyId,
- receiverAddr: data.receiverAddr || "",
- receiverName: data.receiverName || "",
- receiverPhone: data.receiverPhone || ""
+ let params = {}
+ if (this.workType === 1 || this.workType === 2) {
+ params = {
+ baseOperationType: data.baseOperationType,
+ comment: data.comment || "",
+ companyID: companyID,
+ companyName: companyName,
+ contacterID: contacterID,
+ contacterName: contacterName,
+ details: this.tableData,
+ 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 || "",
+ status: 3,
+ // toLocationId: data.toLocation.value||0,
+ waybillNumber: data.waybillNumber || "",
+ weight: data.weight || 0,
+ logisticWeight: data.logisticWeight || 0,
+ logisticCompanyId: data.logisticCompanyId,
+ receiverAddr: data.receiverAddr || "",
+ receiverName: data.receiverName || "",
+ receiverPhone: data.receiverPhone || ""
+ }
+ } else if (this.workType === 3) {
+ params = {
+ baseOperationType: data.baseOperationType,
+ comment: data.comment || "",
+ companyID: companyID,
+ companyName: companyName,
+ contacterID: contacterID,
+ contacterName: contacterName,
+ details: this.tableData,
+ 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 || "",
+ status: 3,
+ toLocationId: data.toLocation.value || 0,
+ waybillNumber: data.waybillNumber || "",
+ weight: data.weight || 0,
+ logisticWeight: data.logisticWeight || 0,
+ logisticCompanyId: data.logisticCompanyId,
+ receiverAddr: data.receiverAddr || "",
+ receiverName: data.receiverName || "",
+ receiverPhone: data.receiverPhone || ""
+ }
}
return params
},
@@ -840,23 +987,48 @@
this.tableData = []
}
// this.tableData = this.editConfig.title !== "鏂板缓" ? list : []
+ let tableColumnArr = []
+ if (this.workType === 1) {
+ tableColumnArr = [
+ { label: "浜у搧鍚嶇О", prop: "productName", productName: true, isRequird: true },
+ { label: "浜у搧缂栫爜", prop: "id" },
+ { label: "璁¢噺鍗曚綅", prop: "unit" },
+ { label: "浜у搧瑙勬牸", prop: "specs" },
+ { label: "浜у搧鍨嬪彿", prop: "model" },
+ { label: "鏁伴噺", prop: "amount", inputFloat: true }
+ ]
+ } else if (this.workType === 2) {
+ tableColumnArr = [
+ { label: "浜у搧鍚嶇О", prop: "productName", productName: true, isRequird: true },
+ { label: "浜у搧缂栫爜", prop: "id" },
+ { label: "璁¢噺鍗曚綅", prop: "unit" },
+ { label: "浜у搧瑙勬牸", prop: "specs" },
+ { label: "浜у搧鍨嬪彿", prop: "model" },
+ // { label: "璋冨嚭浣嶇疆", prop: "fromLocationId", sonLocation: true, isRequird: true },
+ { label: "鏁伴噺", prop: "amount", inputFloat: true }
+ ]
+ } else if (this.workType === 3) {
+ tableColumnArr = [
+ { label: "浜у搧鍚嶇О", prop: "productName", productName: true, isRequird: true },
+ { label: "浜у搧缂栫爜", prop: "id" },
+ { label: "璁¢噺鍗曚綅", prop: "unit" },
+ { label: "浜у搧瑙勬牸", prop: "specs" },
+ { label: "浜у搧鍨嬪彿", prop: "model" },
+ { label: "璋冨嚭浣嶇疆", prop: "fromLocationId", sonLocation: true, isRequird: true },
+ { label: "璋冨叆浣嶇疆", prop: "toLocationId", toLocation: true, isRequird: true },
+ { label: "鏁伴噺", prop: "amount", inputFloat: true }
+ ]
+ }
this.productTableList = {
tableData: this.tableData,
- tableColumn: [
- { 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" }
- ]
+ tableColumn: tableColumnArr
}
},
// 鎿嶄綔杈撳叆
inputContent(val, prop, row) {
this.countId = row.countId
this.tableData.map((item) => {
- if (item.countId === row.countId) {
+ if (item.id === row.id) {
item[prop] = val
}
})
@@ -864,56 +1036,90 @@
// 鏂板
addProductClick(value) {
console.log(value)
- if (value === "鎿嶄綔") {
- console.log(this.tableData)
- for (let i = 0; i < this.tableData.length; i++) {
- if (this.tableData[i].productName.length === 0) {
- this.isNoProduct = false
- break
- } else {
- this.isNoProduct = true
- }
- }
- if (this.isNoProduct) {
- this.countId++
- this.tableData.push({
- countId: this.countId,
- productId: "",
- amount: 0,
- unit: "",
- productName: ""
- })
- }
- } else {
- console.log(this.detailTableData)
- for (let i = 0; i < this.detailTableData.length; i++) {
- if (this.detailTableData[i].name.length === 0) {
- this.isNoDetail = true
- break
- } else {
- this.isNoDetail = false
- }
- }
- if (!this.isNoDetail) {
- this.detailId++
- this.detailTableData.push({
- detailId: this.detailId,
- id: 0,
- amount: 0,
- desc: "",
- name: "",
- number: "",
- price: 0,
- total: 0
- })
- }
+ // if (value === "鎿嶄綔") {
+ // console.log(this.tableData)
+ // for (let i = 0; i < this.tableData.length; i++) {
+ // if (this.tableData[i].productName.length === 0) {
+ // this.isNoProduct = false
+ // break
+ // } else {
+ // this.isNoProduct = true
+ // }
+ // }
+ // if (this.isNoProduct) {
+ // this.countId++
+ // this.tableData.push({
+ // countId: this.countId,
+ // productId: "",
+ // amount: 0,
+ // unit: "",
+ // productName: ""
+ // })
+ // }
+ // } else {
+ // console.log(this.detailTableData)
+ // for (let i = 0; i < this.detailTableData.length; i++) {
+ // if (this.detailTableData[i].name.length === 0) {
+ // this.isNoDetail = true
+ // break
+ // } else {
+ // this.isNoDetail = false
+ // }
+ // }
+ // if (!this.isNoDetail) {
+ // this.detailId++
+ // this.detailTableData.push({
+ // detailId: this.detailId,
+ // id: 0,
+ // amount: 0,
+ // desc: "",
+ // name: "",
+ // number: "",
+ // price: 0,
+ // total: 0
+ // })
+ // }
+ // }
+ },
+ // 鏂板鏂瑰紡淇敼
+ getSelectArray(val, index) {
+ if (this.tableData.length == 1 && this.tableData[0].number.length == 0) {
+ this.tableData = []
}
+ if (index < this.tableData.length) {
+ this.tableData.splice(index, 1)
+ val.map((item, ind) => {
+ this.tableData.splice(index + ind, 0, item)
+ })
+ } else {
+ this.tableData = this.tableData.concat(val)
+ }
+ console.log(this.tableData)
+ let list = this.tableData.map((res) => {
+ return {
+ ...res,
+ productName: res.name
+ }
+ })
+ this.productTableList.tableData = list
+ // this.showSummary.show = true
+ },
+ // 浜у搧娓呯┖
+ emptyProductClick() {
+ this.tableData = []
+ this.productTableList.tableData = this.tableData
+ },
+ clearupProduct(data) {
+ this.tableData = data
+ this.productTableList.tableData = this.tableData
},
// 鍒犻櫎
handleDelClick(scope, value) {
console.log(scope)
if (value === "鎿嶄綔") {
this.tableData.splice(scope.$index, 1)
+ this.productTableList.tableData.splice(scope.$index, 1)
+ this.$message.success("鍒犻櫎鎴愬姛锛�")
} else {
this.detailTableData.splice(scope.$index, 1)
}
@@ -1026,6 +1232,21 @@
console.error(error)
}
}
+ },
+ // 璋冨嚭浣嶇疆閫夋嫨
+ rootLocationChange(val) {
+ this.editConfig.infomation.location = val
+ // this.productTableList.tableData.map((item)=>{
+ // console.log(item,"item")
+ // // item.toLocationId={}
+ // // item.fromLocationId={}
+ // })
+ this.$refs.tableView.setLocationList(val.label, "fromLocation")
+ },
+ // 浠撳簱浣嶇疆閫夋嫨
+ toLocationChange(val) {
+ this.editConfig.infomation.toLocation = val
+ this.$refs.tableView.setLocationList(val.label, "toLocation")
}
}
}
--
Gitblit v1.8.0