From 5cea5a7c019514227cb0dd5be08b8ad71ac5a00d Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期四, 28 九月 2023 14:01:37 +0800
Subject: [PATCH] 修改库存调整和应用接口联调、库存调整和上架规则页面样式修改
---
src/views/warehouseManage/listingRules/index.vue | 10 +
src/components/makepager/TableCommonView.vue | 168 ++++++++++-----------------
src/api/operate/inventoryAdjustment.js | 16 ++
src/components/makepager/CommonFormTableView.vue | 15 ++
src/views/operate/inventoryAdjustment/index.vue | 140 ++++++++++++++---------
5 files changed, 189 insertions(+), 160 deletions(-)
diff --git a/src/api/operate/inventoryAdjustment.js b/src/api/operate/inventoryAdjustment.js
index a30d00b..61a55b0 100644
--- a/src/api/operate/inventoryAdjustment.js
+++ b/src/api/operate/inventoryAdjustment.js
@@ -33,3 +33,19 @@
data
})
}
+// 淇敼搴撳瓨璋冩暣
+export function updateInventoryAdjustment(data) {
+ return request({
+ url: "/api-wms/v1/locationProductAmount/update",
+ method: "post",
+ data
+ })
+}
+// 搴旂敤搴撳瓨璋冩暣
+export function finishInventoryAdjustment(data) {
+ return request({
+ url: "/api-wms/v1/locationProductAmount/finish",
+ method: "post",
+ data
+ })
+}
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 099c275..e5a99d1 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -1,9 +1,16 @@
<template>
- <div class="page-view">
- <el-form ref="form" :model="tableList" :show-message="false" label-position="right">
+ <div class="page-view" :class="{ setHeight: isinventory || islistingrules }">
+ <el-form
+ ref="form"
+ :model="tableList"
+ :show-message="false"
+ label-position="right"
+ :class="{ setHeight: isinventory || islistingrules }"
+ >
<el-table
:data="tableList.tableData"
style="width: 100%"
+ :height="isinventory || islistingrules ? 'calc(100% - 0px)' : ''"
:header-cell-style="{ background: '#f1f3f8', color: '#000009' }"
:row-class-name="tableRowClassName"
@row-click="tableRowClick"
@@ -534,8 +541,12 @@
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
+.setHeight {
+ height: 100%;
+}
.page-view {
min-width: 100px;
+
.el-form-item {
margin-bottom: 0;
.custom-name {
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 8fcc0fe..70254b3 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -1,9 +1,6 @@
<!-- eslint-disable vue/no-use-v-if-with-v-for -->
<template>
- <div
- :class="{ 'table-view': true, table_height: !showSummary }"
- v-loading="loading"
- >
+ <div :class="{ 'table-view': true, table_height: !showSummary }" v-loading="loading">
<el-table
ref="table"
border
@@ -25,15 +22,8 @@
:summary-method="getSummaries"
:show-summary="showSummary"
>
- <el-table-column v-if="tableList.selectBox" type="selection" width="40">
- </el-table-column>
- <el-table-column
- v-if="tableList.selectIndex"
- type="index"
- label="搴忓彿"
- width="50"
- >
- </el-table-column>
+ <el-table-column v-if="tableList.selectBox" type="selection" width="40"> </el-table-column>
+ <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"> </el-table-column>
<el-table-column
v-for="(item, i) in tableList.tableColumn"
:key="i"
@@ -46,9 +36,7 @@
v-if="item.isShowColumn"
>
<template slot-scope="scope">
- <span v-if="item.price">{{
- "锟�" + number_format(scope.row[item.prop], 2, ".", ",")
- }}</span>
+ <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
<!-- 鐘舵�佹樉绀� -->
<div v-else-if="item.status">
<span
@@ -57,29 +45,22 @@
greenSlot: scope.row.status == '4',
redSlot: scope.row.status == '5',
blueSlot: scope.row.status == '3',
- graySlot: scope.row.status == '1',
+ graySlot: scope.row.status == '1'
}"
>{{
- item.isCallMethod
- ? item.getCallMethod(scope.row[item.prop], scope.row)
- : scope.row[item.prop]
+ item.isCallMethod ? item.getCallMethod(scope.row[item.prop], scope.row) : scope.row[item.prop]
}}</span
>
</div>
<!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 -->
<div v-else-if="item.isCallMethod">
- <span>{{
- item.getCallMethod(scope.row[item.prop], scope.row)
- }}</span>
+ <span>{{ item.getCallMethod(scope.row[item.prop], scope.row) }}</span>
</div>
<!-- 灏忎簬褰撳墠鏃堕棿鏄剧ず涓嶅悓棰滆壊 -->
<span
v-else-if="item.date"
:style="{
- color:
- new Date().getTime() > new Date(scope.row[item.prop]).getTime()
- ? '#D23F3A'
- : '#606266',
+ color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266'
}"
>{{ timeAgo(scope.row[item.prop]) }}</span
>
@@ -93,18 +74,10 @@
>{{ scope.row[item.prop] }}</span
>
<span v-else-if="item.propType == 'mulitple'">
- {{
- scope.row[item.prop][item.propTwo]
- ? scope.row[item.prop][item.propTwo]
- : "--"
- }}
+ {{ scope.row[item.prop][item.propTwo] ? scope.row[item.prop][item.propTwo] : "--" }}
</span>
<span :class="item.className ? item.className : ''" v-else>{{
- scope.row[item.prop]
- ? scope.row[item.prop]
- : scope.row[item.prop] === 0
- ? scope.row[item.prop]
- : "--"
+ scope.row[item.prop] ? scope.row[item.prop] : scope.row[item.prop] === 0 ? scope.row[item.prop] : "--"
}}</span>
</template>
</el-table-column>
@@ -116,22 +89,15 @@
<div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div>
<div v-if="showCheckcol" class="styleBtn">
<i @click="checkcol()" class="label">...</i>
- <el-checkbox-group
- v-model="showcolList"
- v-show="iscolopen"
- class="checkbox-group"
- @change="selCeckBoxList"
- >
- <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item"
- >{{ item }}
- </el-checkbox>
+ <el-checkbox-group v-model="showcolList" v-show="iscolopen" class="checkbox-group" @change="selCeckBoxList">
+ <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox>
</el-checkbox-group>
</div>
</div>
</template>
<script>
-import { timeago } from "@/common/config/index";
+import { timeago } from "@/common/config/index"
export default {
name: "TableCommonView",
props: {
@@ -149,147 +115,146 @@
highlight: false,
tableColumn: [
// table琛ㄥ崟
- { label: "", prop: "", min: 200, tooltip: true },
- ],
- };
+ { label: "", prop: "", min: 200, tooltip: true }
+ ]
+ }
},
showcol: {
typeof: Array,
- default: () => [],
- },
+ default: () => []
+ }
},
// 鍚堝苟鍗曞厓鏍�
rowData: {
type: Array,
default: () => {
- return [];
- },
+ return []
+ }
},
// 鍔犺浇鐨刲oading
loading: {
type: Boolean,
- default: false,
+ default: false
},
// 閫変腑鐨勬牱寮�
selectClassRow: {
type: Object,
default: () => {
- return {};
- },
+ return {}
+ }
},
showCheckcol: {
type: Boolean,
- default: true,
+ default: true
},
showSummary: {
type: Boolean,
- default: false,
- },
+ default: false
+ }
},
data() {
return {
iscolopen: false,
- showcolList: this.tableList.showcol,
- };
+ showcolList: this.tableList.showcol
+ }
},
watch: {},
computed: {},
beforeUpdate() {},
methods: {
onMaskClick() {
- this.iscolopen = false;
+ this.iscolopen = false
},
// 鍚堝苟鍗曞厓鏍�
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
- row;
- column;
+ row
+ column
if (this.rowData && this.rowData.length > 0) {
// 浜у搧BOM 琛ㄦ牸鐗规畩澶勭悊 鍚堝苟鍗曞厓鏍�
if (columnIndex < 5 || columnIndex == 9) {
- const _row = this.rowData[rowIndex];
- const _col = _row > 0 ? 1 : 0;
+ const _row = this.rowData[rowIndex]
+ const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
- colspan: _col,
- };
+ colspan: _col
+ }
}
}
},
tableRowClick(row) {
- this.$emit("tableRowClick", row);
+ this.$emit("tableRowClick", row)
},
handleReserve(row) {
- return row._id ? row._id : row.id;
+ return row._id ? row._id : row.id
},
handleSelectionChange(val) {
- this.$emit("getSelectArray", val);
+ this.$emit("getSelectArray", val)
},
// 鍏叡璇︽儏
selCommonClick(row) {
- this.$emit("selCommonClick", row);
+ this.$emit("selCommonClick", row)
},
// 閫夋嫨鍒�
checkcol() {
- this.iscolopen = !this.iscolopen;
+ this.iscolopen = !this.iscolopen
},
closeCheckbox() {
- let label = document.querySelector(".label");
+ let label = document.querySelector(".label")
if (label) {
- this.iscolopen = false;
+ this.iscolopen = false
}
},
selCeckBoxList(val) {
- this.$emit("selTableCol", val);
+ this.$emit("selTableCol", val)
},
// 鍗曢�夎鐩稿叧
tableRowClassName({ row }) {
if (Object.keys(this.selectClassRow).length > 0) {
if (row.id == this.selectClassRow.id) {
- return "onSelect";
+ return "onSelect"
}
}
- this.$emit("tableRowClassName", row);
+ this.$emit("tableRowClassName", row)
},
timeAgo(val) {
- return timeago(val);
+ return timeago(val)
},
//姹傚拰
getSummaries(param) {
if (this.tableList.countcol && this.tableList.countcol.length > 0) {
- const { columns, data } = param;
- const sums = [];
+ const { columns, data } = param
+ const sums = []
columns.forEach((column, index) => {
if (index === 0) {
- sums[index] = " ";
- return;
+ sums[index] = " "
+ return
}
this.tableList.countcol.forEach((countcols) => {
if (column.label === countcols) {
- const values = data.map((item) => Number(item[column.property]));
+ const values = data.map((item) => Number(item[column.property]))
if (!values.every((value) => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
- const value = Number(curr);
+ const value = Number(curr)
if (!isNaN(value)) {
- return prev + curr;
+ return prev + curr
} else {
- return prev;
+ return prev
}
- }, 0);
- sums[index] =
- this.tableList.tableColumn[index - 1].unit + "" + sums[index];
+ }, 0)
+ sums[index] = this.tableList.tableColumn[index - 1].unit + "" + sums[index]
} else {
- sums[index] = "";
+ sums[index] = ""
}
} else {
- return;
+ return
}
- });
- });
- return sums;
+ })
+ })
+ return sums
}
- },
- },
-};
+ }
+ }
+}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
@@ -297,7 +262,7 @@
.table_height {
height: 100%;
}
-.el-table__body-wrapper{
+.el-table__body-wrapper {
height: 100%;
}
.table-view {
@@ -379,9 +344,6 @@
border-top-left-radius: 12px;
border-top-right-radius: 12px;
overflow: auto;
- }
- .el-table__body-wrapper {
- // height: ;
}
}
</style>
diff --git a/src/views/operate/inventoryAdjustment/index.vue b/src/views/operate/inventoryAdjustment/index.vue
index 7596e4d..309916e 100644
--- a/src/views/operate/inventoryAdjustment/index.vue
+++ b/src/views/operate/inventoryAdjustment/index.vue
@@ -22,28 +22,29 @@
@inputContent="inputContent"
@selLocationClick="selLocationClick"
@selProductClick="selProductClick"
+ @tableRowClick="tableRowClick"
>
<template slot="tableButton">
<el-table-column label="鎿嶄綔" width="180" fixed="right" align="center">
<template slot-scope="scope">
- <span v-if="scope.row.isEdit" @click="handleHistoryClick(scope.row)" class="yes-cursor">
+ <span v-if="scope.row.isEdit" @click.stop="handleHistoryClick(scope.row)" class="yes-cursor">
<i class="el-icon-refresh-left"></i>
<span>鍘嗗彶</span>
</span>
<!-- <span v-if="scope.row.isSet" @click="handleSetClick(scope)" class="margin_left_5px">
<i class="el-icon-setting"></i>
<span>璁剧疆</span>
- </span>
- <template v-else>
- <span @click="handleUseClick(scope)" class="margin_left_5px">
+ </span> -->
+ <template v-if="scope.row.status === 3">
+ <span @click.stop="handleUseClick(scope.row)" class="margin_left_5px">
<i class="el-icon-document"></i>
<span>搴旂敤</span>
</span>
- <span @click="handleCleanupClick(scope)" class="margin_left_5px">
+ <!-- <span @click="handleCleanupClick(scope)" class="margin_left_5px">
<i class="el-icon-delete"></i>
<span>娓呴櫎</span>
- </span>
- </template> -->
+ </span> -->
+ </template>
</template>
</el-table-column>
</template>
@@ -59,7 +60,12 @@
<script>
import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
-import { getInventoryAdjustmentList, addInventoryAdjustment } from "@/api/operate/inventoryAdjustment"
+import {
+ getInventoryAdjustmentList,
+ addInventoryAdjustment,
+ updateInventoryAdjustment,
+ finishInventoryAdjustment
+} from "@/api/operate/inventoryAdjustment"
import { currentTime } from "@/common/config/index"
export default {
name: "InventoryAdjustment",
@@ -80,7 +86,8 @@
locationId: 0,
productId: 0,
differenceAmount: 0,
- Amount: 0
+ Amount: 0,
+ operationId: 0
}
},
created() {
@@ -134,12 +141,14 @@
// 鏂板
addProductClick() {
console.log(this.tableData)
+ console.log(this.addTitle)
this.isSel()
- this.$refs.tablelistRef.getRuleList()
if (this.isNoProduct && this.addTitle === "鏂板缓") {
+ this.$refs.tablelistRef.getRuleList()
this.addTitle = "淇濆瓨"
this.showDiscard = true
this.isRowClick = false
+ this.operationId = 0
this.currentRowId = 0
this.countId++
this.tableData.push({
@@ -160,34 +169,29 @@
this.productCategoryId = 0
this.productId = 0
} else {
- if (this.locationId === 0) {
- this.$message.error("璇烽�夋嫨浣嶇疆")
- } else if (this.productId === 0) {
- this.$message.error("璇烽�夋嫨浜у搧")
- } else {
- this.addTitle = "鏂板缓"
- this.showDiscard = false
- // let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateListingRules
- addInventoryAdjustment({
- // id: this.currentRowId,
- locationId: this.locationId,
- Amount: this.Amount,
- differenceAmount: this.differenceAmount,
- productId: this.productId
- })
- .then((res) => {
- console.log(res)
- if (res.code === 200) {
- // let tipStr = this.currentRowId === 0 ? "娣诲姞鎴愬姛" : "淇敼鎴愬姛"
- this.$message.success("娣诲姞鎴愬姛")
- this.getData()
- }
- })
- .catch((err) => {
- console.log(err)
+ this.addTitle = "鏂板缓"
+ this.showDiscard = false
+ let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateInventoryAdjustment
+ requestUrl({
+ Amount: this.Amount,
+ differenceAmount: this.differenceAmount,
+ locationId: this.locationId,
+ operationId: this.operationId,
+ productId: this.productId
+ })
+ .then((res) => {
+ console.log(res)
+ if (res.code === 200) {
+ let tipStr = this.currentRowId === 0 ? "娣诲姞鎴愬姛" : "淇敼鎴愬姛"
+ this.$message.success(tipStr)
this.getData()
- })
- }
+ }
+ })
+ .catch((err) => {
+ console.log(err)
+ this.getData()
+ })
+ // }
}
},
// 鏄惁閫夋嫨浜у搧
@@ -237,8 +241,19 @@
}
},
// 搴旂敤
- handleUseClick(scope) {
- scope.row.isSet = !scope.row.isSet
+ handleUseClick(row) {
+ // scope.row.isSet = !scope.row.isSet
+ finishInventoryAdjustment({
+ locationProductAmountId: row.locationProductAmount,
+ operationId: row.operationId,
+ productId: row.productId
+ }).then((res) => {
+ console.log(res)
+ if (res.code === 200) {
+ this.$message.success("搴旂敤鎴愬姛")
+ this.getData()
+ }
+ })
},
// 娓呴櫎
handleCleanupClick(scope) {
@@ -246,22 +261,31 @@
},
// 琛岀偣鍑�
tableRowClick(row, rowIndex) {
- console.log(row, rowIndex)
- this.addTitle = "淇濆瓨"
- this.showDiscard = true
- this.isRowClick = true
+ console.log("11111")
this.isSel()
- if (!this.isNoProduct) {
- this.tableData.splice(this.tableData.length - 1, 1)
- }
- this.tableData.map((item, index) => {
- if (index === rowIndex) {
- item.isEdit = false
- item.editable = true
- } else {
- item.isEdit = true
+ if (!this.isNoProduct && this.currentRowId === 0) {
+ this.$message.error("璇峰畬鎴愬綋鍓嶆柊寤烘垨鍙栨秷鏂板缓")
+ } else {
+ this.currentRowId = row.id
+ this.addTitle = "淇濆瓨"
+ this.showDiscard = true
+ this.isRowClick = true
+ if (!this.isNoProduct) {
+ this.tableData.splice(this.tableData.length - 1, 1)
}
- })
+ this.tableData.map((item, index) => {
+ if (index === rowIndex) {
+ item.isEdit = false
+ item.editable = true
+ } else {
+ item.isEdit = true
+ }
+ })
+ this.differenceAmount = row.differenceAmount
+ this.Amount = row.Amount
+ this.productId = row.productId
+ this.operationId = row.operationId
+ }
},
// 鎼滅储
getList(val) {
@@ -288,4 +312,12 @@
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+::v-deep {
+ .el-table {
+ border-top-left-radius: 12px;
+ border-top-right-radius: 12px;
+ overflow: auto;
+ }
+}
+</style>
diff --git a/src/views/warehouseManage/listingRules/index.vue b/src/views/warehouseManage/listingRules/index.vue
index b84d797..a42b2bc 100644
--- a/src/views/warehouseManage/listingRules/index.vue
+++ b/src/views/warehouseManage/listingRules/index.vue
@@ -342,4 +342,12 @@
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+::v-deep {
+ .el-table {
+ border-top-left-radius: 12px;
+ border-top-right-radius: 12px;
+ overflow: auto;
+ }
+}
+</style>
--
Gitblit v1.8.0