From eeb4364113ee085bc643c72260e39df2cc215e8c Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 27 十一月 2023 18:48:37 +0800
Subject: [PATCH] 采购管理 确认的时候校验必填字段是否录入,没有则弹编辑弹框,否则 请求接口提交
---
src/views/productManage/product/index.vue | 112 +++++++++++++++++++++++++++++++-------------------------
1 files changed, 62 insertions(+), 50 deletions(-)
diff --git a/src/views/productManage/product/index.vue b/src/views/productManage/product/index.vue
index d6a3029..4549c5c 100644
--- a/src/views/productManage/product/index.vue
+++ b/src/views/productManage/product/index.vue
@@ -2,31 +2,25 @@
<div class="product-manage">
<div class="filter">
<div class="filter-card">
-<!-- <SearchCommonView-->
-<!-- ref="searchCommonView"-->
-<!-- :search-options="searchOptions"-->
-<!-- @searchClick="searchClick"-->
-<!-- @resetClick="resetClick"-->
-<!-- />-->
-
<CommonSearch
:show-add="false"
- :show-download="false"
+ :show-download="true"
:amount-view="false"
:show-action-btn="false"
:placeholder="'璇疯緭鍏ヤ骇鍝佸悕绉�/渚涘簲鍟�'"
@searchClick="onFilterSearch"
/>
-
- <div class="add-view">
- <!-- <el-button type="primary" size="mini" @click="addBtnClick">鏂板缓</el-button>-->
- </div>
</div>
</div>
<div class="body">
<div class="body-card">
<div class="list-view">
- <TableCommonView ref="tableListRef" :table-list="tableList" @selCommonClick="selCommonClick">
+ <TableCommonView
+ ref="tableListRef"
+ :table-list="tableList"
+ @selCommonClick="selCommonClick"
+ @selTableCol="selTableCol"
+ >
<!-- <template slot="tableButton">
<el-table-column label="鎿嶄綔" width="120">
<template slot-scope="scope">
@@ -41,7 +35,6 @@
<PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
</div>
</div>
-
</div>
<!-- 鏂板缓/缂栬緫浜у搧 -->
<AddProduct v-if="editConfig.visible" :add-common-config="editConfig" />
@@ -64,7 +57,7 @@
computed: {},
data() {
return {
- searchText:'',
+ searchText: "",
tableList: {},
searchOptions: [],
commonDetail: {
@@ -76,7 +69,20 @@
visible: false,
title: "鏂板缓",
infomation: {}
- }
+ },
+ tableColumn: [
+ { label: "浜у搧缂栫爜", prop: "number", min: 190, isCommonClick: true },
+ { label: "浜у搧鍚嶇О", prop: "name", min: 130, default: true },
+ { label: "渚涘簲鍟�", prop: "supplierName", min: 130 },
+ { label: "浜у搧绫诲埆", prop: "productType", min: 130 },
+ { label: "瑙勬牸", prop: "specifications", min: 130 },
+ { label: "鍨嬪彿", prop: "modelNumber", min: 130 },
+ { label: "鍗曚綅", prop: "unit", min: 60 },
+ { label: "浠锋牸", prop: "purchasePrice", min: 130 },
+ { label: "鏈�浣庡簱瀛�", prop: "minimumStock", min: 80 },
+ { label: "鏈�楂樺簱瀛�", prop: "maximumStock", min: 80 }
+ ],
+ showCol: ["浜у搧缂栫爜", "浜у搧鍚嶇О", "渚涘簲鍟�", "浜у搧绫诲埆", "瑙勬牸", "浠锋牸", "鏈�浣庡簱瀛�", "鏈�楂樺簱瀛�"]
}
},
created() {
@@ -84,23 +90,24 @@
this.getData()
},
methods: {
+ setColumnVisible(showCol) {
+ return this.tableColumn.map((ele) => {
+ return {
+ ...ele,
+ isShowColumn: showCol.includes(ele.label)
+ }
+ })
+ },
setTable() {
this.tableList = {
tableInfomation: [],
selectIndex: true,
- tableColumn: [
- { label: "浜у搧缂栫爜", prop: "number", min: 190, isCommonClick: true },
- { label: "浜у搧鍚嶇О", prop: "name", min: 130 },
- { label: "渚涘簲鍟�", prop: "supplierNumber", min: 130 },
- { label: "浜у搧绫诲埆", prop: "productType", min: 130 },
- { label: "瑙勬牸", prop: "specifications", min: 130 },
- { label: "鍨嬪彿", prop: "modelNumber", min: 130 },
- { label: "鍗曚綅", prop: "unit", min: 60 },
- { label: "浠锋牸", prop: "purchasePrice", min: 130 },
- { label: "鏈�浣庡簱瀛�", prop: "minimumStock", min: 80 },
- { label: "鏈�楂樺簱瀛�", prop: "maximumStock", min: 80 }
- ]
+ showcol: this.showCol,
+ allcol: [],
+ tableColumn: this.setColumnVisible(this.showCol)
}
+ this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
+
this.searchOptions = []
for (let i = 0; i < this.tableList.tableColumn.length; i++) {
const label = this.tableList.tableColumn[i].label
@@ -108,42 +115,45 @@
this.searchOptions.push({ value: value, label: label })
}
},
+ selTableCol(val) {
+ this.showcol = val
+ this.tableList.tableColumn = this.setColumnVisible(val)
+ },
// 璇锋眰鏁版嵁
- async getData(val, content) {
+ async getData() {
await getProductList({
- [val]: content,
+ keyword: this.searchText,
page: this.pagerOptions.currPage,
pageSize: this.pagerOptions.pageSize
}).then((res) => {
- if (res.data.code === 200) {
- const list = res.data.data.list.map((item) => {
+ if (res.code === 200) {
+ const list = res.data.list.map((item) => {
return {
...item,
+ supplierName: item.supplier.name,
supplierNumber: item.supplier.number
}
})
this.tableList.tableInfomation = list || []
- this.pagerOptions.totalCount = res.data.data.total
+ this.pagerOptions.totalCount = res.data.total
}
})
},
// 鎼滅储
- searchClick(val, content) {
- console.log(val, content)
- this.getData(val.value, content)
- },
+ // searchClick(val, content) {
+ // console.log(val, content)
+ // this.getData(val.value, content)
+ // },
- onFilterSearch(val){
- this.searchText = val ?? ''
- console.log(this.searchText)
-
- // TODO: 闇�瑕佹帴鍙f敮鎸�
- throw new Error("鍔熻兘鏈疄鐜�")
- },
-
- resetClick() {
+ onFilterSearch(val) {
+ this.searchText = val ?? ""
+ this.pagerOptions.currPage = 1
this.getData()
},
+
+ // resetClick() {
+ // this.getData()
+ // },
// 鏂板缓
addBtnClick() {
this.editConfig.visible = true
@@ -187,24 +197,26 @@
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
-.product-manage{
+.product-manage {
height: 100%;
overflow: hidden;
- .filter{
+ .filter {
height: 80px;
display: flex;
align-items: center;
padding: 12px 20px 0 20px;
- &-card{
+ &-card {
height: 80px;
display: flex;
align-items: center;
+ box-sizing: border-box;
+ padding: 10px 20px;
flex: 1;
border-radius: 12px;
background-color: #fff;
}
}
- .body{
+ .body {
box-sizing: border-box;
padding: 10px 20px;
border-radius: 12px;
--
Gitblit v1.8.0