From c4926e25f0d61c621e781c54659b76bd9e6f54ab Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期三, 18 十月 2023 20:15:13 +0800
Subject: [PATCH] feat: 产品类别表单非必填项添加兜底展示
---
src/views/operate/inventoryAdjustment/index.vue | 363 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 259 insertions(+), 104 deletions(-)
diff --git a/src/views/operate/inventoryAdjustment/index.vue b/src/views/operate/inventoryAdjustment/index.vue
index 7d52d43..48c3806 100644
--- a/src/views/operate/inventoryAdjustment/index.vue
+++ b/src/views/operate/inventoryAdjustment/index.vue
@@ -2,57 +2,92 @@
<div class="rightContent">
<div class="top">
<SearchCommonView
- :add-title="'鏂板缓'"
- :placeholder="'璇疯緭鍏ュ崟鍙�'"
+ :add-title="addTitle"
+ :show-discard="showDiscard"
+ :show-apply="false"
+ :placeholder="'璇疯緭鍏ヤ綅缃�/浜у搧'"
:amount-view="false"
- @addCommonClick="addBtnClick"
+ @addCommonClick="addProductClick"
@searchClick="getList"
+ @discardBtnClick="discardBtnClick"
+ @applyBtnClick="applyBtnClick"
/>
</div>
<div class="list-view">
<div class="table">
- <TableCommonView
- ref="tableListRef"
- :table-list="tableList"
- :show-checkcol="false"
+ <CommonFormTableView
+ ref="tablelistRef"
+ :isinventory="true"
+ :product-table-list="tableList"
+ @inputContent="inputContent"
+ @selLocationClick="selLocationClick"
+ @selProductClick="selProductClick"
@tableRowClick="tableRowClick"
- ></TableCommonView>
+ >
+ <template slot="tableButton">
+ <el-table-column label="鎿嶄綔" width="180" align="center">
+ <template slot-scope="scope">
+ <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-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">
+ <i class="el-icon-delete"></i>
+ <span>娓呴櫎</span>
+ </span> -->
+ </template>
+ </template>
+ </el-table-column>
+ </template>
+ </CommonFormTableView>
</div>
<div class="btn-pager">
<PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
</div>
</div>
- <!-- 鏂板缓/缂栬緫 -->
- <AddDialog
- v-if="editConfig.visible"
- @refresh="refresh"
- :positionList="tableList.tableInfomation"
- :edit-common-config="editConfig"
- />
</div>
</template>
<script>
+import CommonFormTableView from "@/components/makepager/CommonFormTableView"
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
-import { getLocationList } from "@/api/warehouseManage/warehouse"
-import AddDialog from "@/views/warehouseManage/position/AddDialog"
-import { getDataByType } from "@/api/data"
+import {
+ getInventoryAdjustmentList,
+ addInventoryAdjustment,
+ updateInventoryAdjustment,
+ finishInventoryAdjustment
+} from "@/api/operate/inventoryAdjustment"
+import { currentTime } from "@/common/config/index"
export default {
name: "InventoryAdjustment",
props: {},
- components: { AddDialog },
+ components: { CommonFormTableView },
mixins: [pageMixin],
computed: {},
data() {
return {
+ addTitle: "鏂板缓",
+ showDiscard: false,
tableList: {},
+ tableData: [],
searchOptions: [],
- editConfig: {
- visible: false,
- title: "鏂板缓",
- infomation: {}
- },
- positionTypeList: getDataByType("positionType")
+ countId: 0,
+ isNoProduct: true, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨
+ isRowClick: false,
+ locationId: 0,
+ productId: 0,
+ differenceAmount: 0,
+ amount: 0,
+ operationId: 0
}
},
created() {
@@ -62,73 +97,196 @@
methods: {
setTable() {
this.tableList = {
- tableInfomation: [],
- selectBox: true,
- showcol: this.showcol,
- allcol: [],
- tableColumn: this.setTableColumn(this.showcol)
+ tableData: this.tableData,
+ selectBox: false,
+ selectIndex: true,
+ tableColumn: [
+ { label: "浣嶇疆", prop: "locationName", location: true },
+ { label: "浜у搧", prop: "productName", product: true },
+ { label: "鍦ㄥ簱鏁伴噺", prop: "amount" },
+ { label: "璁¢噺鍗曚綅", prop: "unit" },
+ { label: "璁℃暟鐨勬暟閲�", prop: "differenceAmount", inputFloat: true },
+ { label: "宸紓", prop: "adjustAmount" },
+ { label: "鏃ユ湡", prop: "createDate" },
+ { label: "鐢ㄦ埛", prop: "user", user: true }
+ ]
}
- let allcol = []
- for (let i = 0; i < this.tableList.tableColumn.length; i++) {
- if (!this.tableList.tableColumn[i].default) {
- const label = this.tableList.tableColumn[i].label
- allcol.push(label)
- }
- }
- this.tableList.allcol = allcol
- },
- setTableColumn(showcol) {
- console.log(showcol)
- let tableColumn = [
- {
- label: "浣嶇疆",
- prop: "jointName",
- isShowColumn: true,
- default: true
- },
- {
- label: "浣嶇疆绫诲瀷",
- prop: "type",
- isShowColumn: true,
- default: true,
- conversion: true,
- getStatus: this.getTypesList
- }
- ]
- return tableColumn
- },
- getTypesList(val) {
- let string = "--"
- if (val) {
- for (let i in this.positionTypeList) {
- if (this.positionTypeList[i].id == val) {
- return this.positionTypeList[i].name
- }
- }
- }
- return string
- },
- selTableCol(val) {
- this.showcol = val
- this.tableList.tableColumn = this.setTableColumn(val)
},
// 璇锋眰鏁版嵁
async getData() {
- await getLocationList({
- keyword: this.keyword,
+ await getInventoryAdjustmentList({
page: this.pagerOptions.currPage,
pageSize: this.pagerOptions.pageSize
}).then((res) => {
if (res.code === 200) {
- const list = res.data ? res.data : []
- this.tableList.tableInfomation = list
+ console.log(res)
+ const list = res.data.map((item) => {
+ return {
+ ...item,
+ isSet: false,
+ isEdit: true,
+ editable: true,
+ adjustAmount: 0
+ }
+ })
+ this.tableList.tableData = list || []
+ this.tableData = list || []
this.pagerOptions.totalCount = res.total
}
})
},
- refresh() {
- this.pagerOptions.currPage = 1
- this.getData()
+ // 鎿嶄綔杈撳叆
+ inputContent(val, prop, row) {
+ console.log(val, prop, row)
+ this.differenceAmount = val
+ },
+ // 鏂板
+ addProductClick() {
+ console.log(this.tableData)
+ console.log(this.addTitle)
+ this.isSel()
+ 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.unshift({
+ countId: this.countId,
+ amount: 0,
+ adjustAmount: 0,
+ productId: "",
+ differenceAmount: 0,
+ locationId: 0,
+ createDate: this.currentTime(),
+ isSet: true,
+ isEdit: false,
+ editable: false
+ })
+ this.locationId = 0
+ this.subLocationId = 0
+ this.productCategoryId = 0
+ this.productId = 0
+ } else {
+ 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()
+ })
+ // }
+ }
+ },
+ // 鏄惁閫夋嫨浜у搧
+ isSel() {
+ for (let i = 0; i < this.tableData.length; i++) {
+ if (this.tableData[i].productName.length === 0) {
+ this.isNoProduct = false
+ break
+ } else {
+ this.isNoProduct = true
+ }
+ }
+ },
+ // 鍙栨秷
+ discardBtnClick() {
+ if (this.isRowClick) {
+ this.tableData.map((item) => {
+ item.isEdit = true
+ })
+ } else {
+ this.tableData.splice(0, 1)
+ }
+ this.addTitle = "鏂板缓"
+ this.showDiscard = false
+ },
+ // 搴旂敤鍏ㄩ儴
+ applyBtnClick() {
+ console.log("搴旂敤鍏ㄩ儴")
+ },
+ // 鍘嗗彶
+ handleHistoryClick(row) {
+ this.isSel()
+ console.log(row)
+ if (this.isNoProduct) {
+ console.log("鍘嗗彶")
+ this.$router.push({
+ name: "inventoryAdjustmentHistory",
+ params: { locationId: row.locationId, productId: row.productId }
+ })
+ }
+ },
+ // 璁剧疆
+ handleSetClick(scope) {
+ this.isSel()
+ if (this.isNoProduct) {
+ 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) {
+ scope.row.isSet = !scope.row.isSet
+ },
+ // 琛岀偣鍑�
+ tableRowClick(row, rowIndex) {
+ console.log("11111")
+ this.isSel()
+ 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) {
@@ -136,34 +294,31 @@
this.pagerOptions.currPage = 1
this.getData()
},
- // 琛岀偣鍑�
- tableRowClick(row) {
- console.log(row)
- this.editConfig.title = "缂栬緫"
- this.editConfig.infomation = { ...row }
- this.editConfig.infomation.parentId = Number(this.editConfig.infomation.parentId)
- this.editConfig.visible = true
+ // 閫夋嫨浣嶇疆鏂规硶
+ selLocationClick(item, prop) {
+ console.log(item, prop)
+ this.locationId = item.value
},
- // 鏂板缓
- addBtnClick() {
- this.editConfig.infomation = {
- name: "",
- parentId: null,
- type: 3,
- isScrapLocation: null,
- isReturnLocation: null,
- replenishLocation: null,
- countFrequency: 0,
- recentlyCount: "",
- nextCount: "",
- notes: ""
- }
- this.editConfig.visible = true
- this.editConfig.title = "鏂板缓"
+ // 閫変腑浜у搧鏂规硶
+ selProductClick(item) {
+ console.log(item)
+ this.productId = item.value
+ },
+ // 鑾峰彇褰撳墠鏃堕棿
+ currentTime() {
+ return currentTime()
}
}
}
</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