From 58e803fffe35d5ac39599d5ad6b3359e374b1808 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期一, 23 十月 2023 12:03:53 +0800
Subject: [PATCH] 库存调整-历史路由跳转添加字段
---
src/views/reportForm/inventoryReport/index.vue | 439 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 338 insertions(+), 101 deletions(-)
diff --git a/src/views/reportForm/inventoryReport/index.vue b/src/views/reportForm/inventoryReport/index.vue
index d65260c..d3b066d 100644
--- a/src/views/reportForm/inventoryReport/index.vue
+++ b/src/views/reportForm/inventoryReport/index.vue
@@ -1,46 +1,132 @@
+<!-- 搴撳瓨鎶ヨ〃 -->
<template>
<div class="rightContent">
<div class="top">
<SearchCommonView
- :add-title="'鏂板缓'"
:showAdd="false"
- :placeholder="'璇疯緭鍏ュ弬鑰�'"
+ :add-title="'鏂板缓'"
+ :placeholder="'璇疯緭鍏ヤ骇鍝佸悕绉版垨浜у搧绫诲埆'"
:amount-view="false"
@addCommonClick="addBtnClick"
@searchClick="getList"
+ :isDisabled="true"
/>
</div>
- <div class="list-view">
- <TableCommonView
- ref="tableListRef"
- :table-list="tableList"
- @selTableCol="selTableCol"
- @tableRowClick="tableRowClick"
- ></TableCommonView>
- <div class="btn-pager">
- <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+
+ <div class="content_wrap">
+ <div class="con_left">
+ <p>浠撳簱</p>
+ <div class="stash">
+ <template>
+ <el-radio
+ v-for="(item, index) in warehouseList"
+ :key="index"
+ v-model="stashRadio"
+ :label="item.code"
+ @change="radioHandleChange"
+ >{{ item.name }}</el-radio
+ >
+ <!-- @click.prevent.native="checkRadio(item.code)" 鍙栨秷鍗曢�夐」 -->
+ </template>
+ </div>
+ <p style="margin-top: 30px">绫诲埆</p>
+ <el-checkbox-group v-model="checkList" @change="checkListHandler">
+ <el-checkbox v-for="item in categoryList" :key="item.id" :label="item.id">
+ {{ item.name }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </div>
+ <div class="list-view">
+ <div class="table">
+ <TableCommonView
+ ref="tableListRef"
+ :table-list="tableList"
+ @selTableCol="selTableCol"
+ @tableRowClick="tableRowClick"
+ :showSummary="true"
+ >
+ <template slot="tableButton">
+ <el-table-column label="鎿嶄綔" width="220" align="center">
+ <template slot-scope="scope">
+ <span @click="handleHistoryClick(scope.row)" class="yes-cursor">
+ <i class="el-icon-refresh-left"></i>
+ <span>鍘嗗彶</span>
+ </span>
+ <span @click="handleAddGoods(scope)" class="margin_left_5px no-cursor">
+ <i class="el-icon-refresh"></i>
+ <span>琛ヨ揣</span>
+ </span>
+ <template>
+ <span @click="handleLocation(scope)" class="margin_left_5px yes-cursor">
+ <i class="el-icon-menu"></i>
+ <span>浣嶇疆</span>
+ </span>
+ <span @click="handleForecast(scope)" class="margin_left_5px no-cursor">
+ <i class="el-icon-s-data"></i>
+ <span>棰勬祴</span>
+ </span>
+ </template>
+ </template>
+ </el-table-column>
+ </template>
+ </TableCommonView>
+ </div>
+ <div class="btn-pager">
+ <PagerView class="page" :pager-options="pagerOptions" :page-size="pageSizes" v-on="pagerEvents" />
+ </div>
</div>
</div>
- <!-- 缂栬緫 -->
+
+ <!-- 缂栬緫 dialog-->
<AddOverviewDialog v-if="editConfig.visible" :edit-common-config="editConfig" :add-name="this.$route.params.name" />
</div>
</template>
<script>
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
-import { getProductOperatonList } from "@/api/product/product"
import AddOverviewDialog from "@/views/overview/AddOverviewDialog"
+import { getInventoryData, getProductCategoryList, getWarehouseList } from "@/api/reportForm/inventoryRwport"
export default {
- name: "InboundOutboundDetail",
+ name: "inventoryReport",
props: {},
components: { AddOverviewDialog },
mixins: [pageMixin],
computed: {},
data() {
return {
+ keyword: "",
+ checkList: [],
+ testArr: [],
+ testArr2: [
+ {
+ product: "鍗楁柟涓濆发xxx", //浜у搧
+ category: "涓濈桓鍒跺搧/鐪熶笣鐫¤", // 浜у搧绫诲埆
+ cost: "100.00", //鍗曚綅鎴愭湰
+ inStore: "12.00", // 鍦ㄥ簱
+ totalPrices: 10, // 鎬讳环鍊�
+ availableStore: "0.00", //鍙敤搴撳瓨
+ inStorage: "100.00", // 鍏ュ簱
+ toStore: "20.00", // 鍑哄簱
+ forecast: "0.00", //棰勬祴
+ unit: "浠�" //鍗曚綅
+ },
+ {
+ product: "鍗楁柟涓濆发12306xxx",
+ category: "涓濈桓鍒跺搧/鐪熶笣鐫¤",
+ cost: "9980.00",
+ totalPrices: "0.00",
+ inStore: "10.00",
+ availableStore: "0.00",
+ inStorage: "0.00",
+ toStore: "0.00",
+ forecast: "0.00",
+ unit: "浠�"
+ }
+ ],
tableList: {},
- showcol: ["鐘舵��"],
+ showcol: ["浜у搧绫诲埆", "鍗曚綅鎴愭湰", "鎬讳环鍊�", "鍏ュ簱", "鍑哄簱"],
+ countcol: ["鎬讳环鍊�", "鍦ㄥ簱", "鍙敤搴撳瓨", "鍏ュ簱", "鍑哄簱", "棰勬祴"],
searchOptions: [],
commonDetail: {
visible: false,
@@ -53,22 +139,57 @@
infomation: {}
},
productId: this.$route.params.id,
- productName: this.$route.params.name
+ productName: this.$route.params.name,
+ categoryList: [], // 绫诲埆
+ categoryListId: [], //绫诲埆id
+ warehouseList: [], // 浠撳簱
+ warehouseListName: "", // 浠撳簱鍚嶇О
+ stashRadio: "1",
+ pageSizes: [15, 30],
+ oldRadioBtn: "",
+ metaTitle: this.$route.meta.title,
+ searchStr: this.$route.params.name ?? ''
}
},
created() {
this.setTable()
- this.getData()
+ this.getData() //搴撳瓨鎶ヨ〃
+ this.getStashData() // 浠撳簱鍒楄〃鏁版嵁
+ this.getProductCategoryList()
+ },
+ mounted() {
+ this.countSums()
},
methods: {
+ checkListHandler(e) {
+ this.categoryListId = e
+ this.getData()
+ },
+ radioHandleChange(e) {
+ this.warehouseListName = e
+ this.getData()
+ },
+ // checkRadio(val){
+ // console.log(val)
+ // val == this.stashRadio ? this.stashRadio = '' : this.stashRadio = val
+ // this.warehouseListName = val
+ // this.getData()
+ // },
setTable() {
+ if (this.isIconIndex === "1") {
+ this.pageSizes = [30, 60]
+ this.pagerOptions.pageSize = 30
+ }
this.tableList = {
tableInfomation: [],
- selectBox: true,
+ selectBox: false,
+ selectIndex: true,
showcol: this.showcol,
+ countcol: this.countcol,
allcol: [],
tableColumn: this.setTableColumn(this.showcol)
}
+ // this.tableList.tableInfomation = this.testArr;
let allcol = []
for (let i = 0; i < this.tableList.tableColumn.length; i++) {
if (!this.tableList.tableColumn[i].default) {
@@ -81,63 +202,78 @@
setTableColumn(showcol) {
let tableColumn = [
{
- label: "鏃ユ湡",
- prop: "operationDate",
- isShowColumn: true,
- default: true,
- date: true
- },
- {
- label: "鍗曞彿",
- prop: "number",
- isShowColumn: true,
- default: true
- },
- {
label: "浜у搧",
prop: "productName",
- isShowColumn: true,
- default: true
+ default: true,
+ width: 300,
+ isShowColumn: true
+ // date: true, // 鏄惁涓烘棩鏈熸牸寮�
},
{
- label: "浠�",
- prop: "from",
- isShowColumn: true,
- default: true
+ label: "浜у搧绫诲埆",
+ prop: "productType",
+ default: true,
+ isShowColumn: showcol.includes("浜у搧绫诲埆")
},
{
- label: "鑷�",
- prop: "to",
- isShowColumn: true,
- default: true
+ label: "鍗曚綅鎴愭湰",
+ prop: "cost",
+ default: false,
+ isShowColumn: showcol.includes("鍗曚綅鎴愭湰"),
+ textAlign:"right"
},
{
- label: "鏁伴噺",
+ label: "鎬讳环鍊�",
+ prop: "value",
+ default: false,
+ isShowColumn: showcol.includes("鎬讳环鍊�"),
+ unit: "锟�",
+ textAlign:"right"
+ },
+ {
+ label: "鍦ㄥ簱",
prop: "amount",
+ default: true,
isShowColumn: true,
- default: true
+ unit: "",
+ textAlign:"right"
+ },
+ {
+ label: "鍙敤搴撳瓨",
+ prop: "availableNumber",
+ default: true,
+ isShowColumn: true,
+ unit: "",
+ textAlign:"right"
+ },
+ {
+ label: "鍏ュ簱",
+ prop: "in",
+ default: false,
+ isShowColumn: showcol.includes("鍏ュ簱"),
+ unit: "",
+ textAlign:"right"
+ },
+ {
+ label: "鍑哄簱",
+ prop: "out",
+ isShowColumn: showcol.includes("鍑哄簱"),
+ default: false,
+ unit: "",
+ textAlign:"right"
+ },
+ {
+ label: "棰勬祴",
+ prop: "forecast",
+ isShowColumn: showcol.includes("棰勬祴"),
+ default: false,
+ unit: ""
},
{
label: "鍗曚綅",
prop: "unit",
- isShowColumn: true,
- default: true
- },
- {
- label: "鐘舵��",
- prop: "status",
- width: 120,
- isShowColumn: showcol.includes("鐘舵��"),
- default: false,
- status: true,
- isCallMethod: true,
- getCallMethod: this.getStatus
- },
- {
- label: "瀹屾垚鑰�",
- prop: "admin",
- isShowColumn: showcol.includes("瀹屾垚鑰�"),
- default: false
+ default: true,
+ isShowColumn: true
}
]
return tableColumn
@@ -146,46 +282,127 @@
this.showcol = val
this.tableList.tableColumn = this.setTableColumn(val)
},
- // 璇锋眰鏁版嵁
- async getData() {
- await getProductOperatonList({
- productId: this.productId,
- page: this.pagerOptions.currPage,
- pageSize: this.pagerOptions.pageSize
- }).then((res) => {
- if (res.code === 200) {
- const list = res.data.map((item) => {
- return {
- ...item,
- from: item.fromLocation.name,
- to: item.toLocation.name,
- productName: this.productName
- }
- })
- this.tableList.tableInfomation = list || []
- this.pagerOptions.totalCount = res.total
- }
- })
- },
- // 鎼滅储
getList(val) {
- console.log(val)
+ this.searchStr = val
+ this.getInventoryData({
+ page: 1,
+ pageSize: this.pagerOptions.pageSize,
+ keyWord: val
+ })
},
// 琛岀偣鍑�
tableRowClick(row) {
console.log(row)
- this.editConfig.visible = true
+ // this.editConfig.visible = true;
this.editConfig.title = "鏌ョ湅"
this.editConfig.infomation = { ...row }
},
// 鏂板缓
addBtnClick() {
- this.editConfig.visible = true
- this.editConfig.title = "鏂板缓"
+ // this.editConfig.visible = true;
+ // this.editConfig.title = "鏂板缓"
+ // this.getData()
},
// 鐘舵��
getStatus(val) {
return val === 1 ? "鑽夌" : val === 3 ? "灏辩华" : "瀹屾垚"
+ },
+ // 鍘嗗彶
+ handleHistoryClick(row) {
+ this.$router.push({
+ name: "inboundOutboundDetail",
+ params: {
+ keyWord:row.productType,
+ produceId:row.produceId,
+ unit:row.unit,
+ productName:row.productName,
+ name: "鎶ヨ〃"
+ }
+ })
+ },
+
+ // 琛ヨ揣
+ handleAddGoods(row) {
+ console.log(row)
+ },
+ // 浣嶇疆
+ handleLocation(row) {
+ console.log(row,"rowwww")
+ this.$router.push({
+ name:"locationReport",
+ params:{
+ // keyWord:row.row.productName,
+ wareHouseCode:this.warehouseListName,
+ productId:row.row.produceId,
+ name:"搴撳瓨鎶ヨ〃"
+ }
+ })
+ },
+ // 棰勬祴
+ handleForecast() {},
+ //鎬讳环璁$畻
+ countSums() {
+ this.testArr2.map((item) => {
+ let obj = {
+ product: item.product, //浜у搧
+ category: item.category, // 浜у搧绫诲埆
+ cost: item.cost, //鍗曚綅鎴愭湰
+ inStore: item.inStore, // 鍦ㄥ簱
+ totalPrices: item.cost * item.inStore, // 鎬讳环鍊�
+ availableStore: item.availableStore, //鍙敤搴撳瓨
+ inStorage: item.inStorage, // 鍏ュ簱
+ toStore: item.toStore, // 鍑哄簱
+ forecast: item.forecast, //棰勬祴
+ unit: item.unit //鍗曚綅
+ }
+ this.testArr.push(obj)
+ })
+ },
+
+ //鎺ュ彛璇锋眰-----------------------------------------------------------------------------------------------
+ // 鑾峰彇搴撳瓨鎶ヨ〃鏁版嵁
+ async getInventoryData(params) {
+ await getInventoryData(params).then((res) => {
+ if (res.code === 200) {
+ const list = res.data
+ this.tableList.tableInfomation = list || []
+ this.pagerOptions.totalCount = res.total
+ }
+ })
+ },
+ getData() {
+ let params = {
+ keyWord: this.searchStr,
+ categoryIds: this.categoryListId,
+ page: this.pagerOptions.currPage,
+ pageSize: this.pagerOptions.pageSize,
+ warehouseCode: this.warehouseListName
+ }
+ this.getInventoryData(params)
+ },
+ // 鑾峰彇浜у搧绫诲瀷鍒楄〃鏁版嵁
+ async getProductCategoryList() {
+ await getProductCategoryList({
+ keyWord: "",
+ page: this.pagerOptions.currPage,
+ pageSize: this.pagerOptions.pageSize
+ }).then((res) => {
+ if (res.code === 200) {
+ this.categoryList = res.data
+ }
+ })
+ },
+ // 璇锋眰浠撳簱鍒楄〃鏁版嵁
+ async getStashData() {
+ await getWarehouseList({
+ keyword: "",
+ page: this.pagerOptions.currPage,
+ pageSize: this.pagerOptions.pageSize
+ }).then((res) => {
+ if (res.data.code === 200) {
+ this.warehouseList = res.data.data
+ }
+ })
}
}
}
@@ -193,18 +410,38 @@
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
-// .rightContent {
-// height: 100%;
-// background: #e6ecf2;
-// padding: 10px;
-// .top {
-// margin-bottom: 20px;
-// height: 60px;
-// background: #fff;
-// border-radius: 8px;
-// }
-// .list-view {
-// height: calc(100% - 120px);
-// }
-// }
+.content_wrap {
+ height: calc(100% - 0px);
+ display: flex;
+ justify-content: space-between;
+ .con_left {
+ width: 200px;
+ .el-checkbox-group {
+ width:100%;
+ display: flex;
+ flex-direction: column;
+ }
+ .stash {
+ display: flex;
+ flex-direction: column;
+ }
+ }
+ .list-view {
+ flex: 1;
+ }
+}
+::v-deep {
+ .el-checkbox {
+ padding: 5px;
+ }
+ .el-checkbox__label {
+ width: 95%;
+ box-sizing: border-box;
+ padding-right: 5px;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre-wrap !important;
+ }
+}
+
</style>
--
Gitblit v1.8.0