From 446909448e77be9c61c072aa52178a50b8e8a292 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期五, 22 十二月 2023 17:49:55 +0800
Subject: [PATCH] 报价单和销售明细单的产品信息新增为可以多选的功能
---
src/components/makepager/TableCommonView.vue | 2
src/views/sales/quotation/AddQuotationDialog.vue | 43 +++++++++-----
src/components/makepager/CommonFormTableView.vue | 19 ++++++
src/views/sales/salesDetails/AddSalesDetailsDialog.vue | 43 +++++++++-----
src/views/other/commonDialog/SelectCommonDialog.vue | 24 +++++++-
5 files changed, 96 insertions(+), 35 deletions(-)
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 1b9765c..4476b95 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -201,6 +201,7 @@
:edit-common-config="editSelCommonConfig"
:quotationNumber="quotationNumber"
@selClient="selClient"
+ @getSelectArray="getSelectArray"
/>
</div>
</template>
@@ -224,6 +225,11 @@
pageName:{
type:String,
default:''
+ },
+ // 鍒楄〃鏂板鏄惁澶氶��
+ addTypeIdMultiple:{
+ type:Boolean,
+ default:false,
},
// 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝�
quotationNumber:{
@@ -268,6 +274,7 @@
tableList: [],
editSelCommonConfig: {
editVisible: false,
+ isSelectBox:false,
title: "",
infomation: {}
},
@@ -399,7 +406,13 @@
},
// 鏂板
add() {
- this.$emit("addProductClick")
+ if(this.addTypeIdMultiple){
+ this.editSelCommonConfig.title = "浜у搧鍚嶇О"
+ this.editSelCommonConfig.isSelectBox=true;
+ this.editSelCommonConfig.editVisible = true
+ }else{
+ this.$emit("addProductClick")
+ }
},
commonInputChange(val, prop, row,scope) {
if (prop === "amount") {
@@ -487,6 +500,7 @@
console.log(row, prop)
this.productIndex = row.productId - 1
this.editSelCommonConfig.title = "浜у搧鍚嶇О"
+ this.editSelCommonConfig.isSelectBox=false;
this.editSelCommonConfig.editVisible = true
},
selClient(item) {
@@ -505,6 +519,9 @@
}
})
},
+ getSelectArray(val){
+ this.$emit("getSelectArray",val)
+ },
// 娓呴櫎宸查�夋嫨鐢ㄦ埛
clearupClient(row) {
this.productIndex = row.productId - 1
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 11e0d00..9cf911e 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -18,8 +18,8 @@
@row-click="tableRowClick"
:row-class-name="tableRowClassName"
>
- <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"></el-table-column>
<el-table-column v-if="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"
diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index aad1584..4da1e9c 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -31,9 +31,10 @@
<TableCommonView
ref="tableListRef"
:table-list="tableList"
- :select-box="false"
+ :select-box="editCommonConfig.isSelectBox"
@selCommonClick="selNameClick"
@selTableCol="selTableCol"
+ @getSelectArray="getSelectArray"
>
</TableCommonView>
<div slot="footer" class="dialog-footer">
@@ -42,6 +43,10 @@
<PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
</div>
</div>
+ </div>
+ <div slot="footer" class="dialog-footer" v-if="editCommonConfig.isSelectBox">
+ <el-button type="primary" size="small" @click="saveClick()">纭畾</el-button>
+ <el-button size="small" @click="editConfig.editVisible = false">鍙栨秷</el-button>
</div>
</el-dialog>
</div>
@@ -66,6 +71,7 @@
default: () => {
return {
editVisible: false,
+ isSelectBox:false,
title: "",
clientId: 0,
client_name: "",
@@ -97,7 +103,8 @@
keyword: "",
keywordType: "",
tableColumn: [],
- showCol: []
+ showCol: [],
+ selectArray:[],
}
},
created() {
@@ -195,7 +202,7 @@
this.searchSel = { value: "serviceNumber", label: "鏈嶅姟鍗曠紪鍙�" }
} else if (this.editConfig.title === "浜у搧鍚嶇О") {
this.tableColumn = [
- { label: "浜у搧鍚嶇О", prop: "name", isClick: true, default: true }, // 浜у搧鍚嶇О
+ { label: "浜у搧鍚嶇О", prop: "name", isClick: this.editCommonConfig.isSelectBox?false:true, default: true }, // 浜у搧鍚嶇О
{ label: "浜у搧缂栧彿", prop: "number" }
]
this.showCol = ["浜у搧鍚嶇О", "浜у搧缂栧彿"]
@@ -257,6 +264,14 @@
selTableCol(val) {
this.showcol = val
this.tableList.tableColumn = this.setColumnVisible(val)
+ },
+ // 鍒楄〃澶氶��
+ getSelectArray(val){
+ this.selectArray=val;
+ },
+ saveClick(){
+ this.$emit('getSelectArray',this.selectArray)
+ this.editConfig.editVisible = false
},
// 璇锋眰鏁版嵁
async getData() {
@@ -491,6 +506,9 @@
this.editConfig.editVisible = false
},
selNameClick(row) {
+ if(this.editCommonConfig.isSelectBox){
+ return true;
+ }
this.editConfig.editVisible = false
if (this.editConfig.title === "閿�鍞�诲崟") {
this.$emit("selClient", row, "master")
diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue
index f347bca..f51a995 100644
--- a/src/views/sales/quotation/AddQuotationDialog.vue
+++ b/src/views/sales/quotation/AddQuotationDialog.vue
@@ -250,9 +250,11 @@
<CommonFormTableView
:show-summary="showSummary"
pageName="quotation"
+ :addTypeIdMultiple="false"
:product-table-list="productTableList"
@inputContent="inputContent"
@addProductClick="addProductClick"
+ @getSelectArray="getSelectArray"
@emptyProductClick="emptyProductClick"
@recalculateProductClick="recalculateProductClick"
@clearupProduct="clearupProduct"
@@ -664,21 +666,32 @@
},
// 浜у搧鏂板
addProductClick() {
- this.productId++
- this.tableData.push({
- productId: this.productId,
- id: 0,
- amount: 0,
- desc: "",
- name: "",
- number: "",
- price: 0,
- cost:'',
- profit:'',
- margin:'',
- total: 0,
- unit: ""
- })
+ // this.productId++
+ // this.tableData.push({
+ // productId: this.productId,
+ // id: 0,
+ // amount: 0,
+ // desc: "",
+ // name: "",
+ // number: "",
+ // price: 0,
+ // cost:'',
+ // profit:'',
+ // margin:'',
+ // total: 0,
+ // unit: ""
+ // })
+ // this.showSummary.show = true
+ },
+ // 鏂板鏂瑰紡淇敼
+ getSelectArray(val){
+ if(val.length>0){
+ val.map((item, index) => {
+ item.productId = this.tableData.length + index+1
+ })
+ }
+ this.tableData=this.tableData.concat(val);
+ this.productTableList.tableData=this.tableData
this.showSummary.show = true
},
// 浜у搧娓呯┖
diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
index a6efeb0..626a2b9 100644
--- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
+++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -407,6 +407,7 @@
ref="commonFormTableView"
:detail-enter="isView?true:false"
:selectBox="false"
+ :addTypeIdMultiple="false"
:show-summary="showSummary"
pageName="quotation"
:isOperate="((autoCodeHeadersObj.Bjd=='yes'&&editConfig.infomation.quotation_number)||autoCodeHeadersObj.Bjd!='yes')?true:false"
@@ -414,6 +415,7 @@
:product-table-list="productTableList"
@inputContent="inputContent"
@addProductClick="addProductClick"
+ @getSelectArray="getSelectArray"
@emptyProductClick="emptyProductClick"
@clearupProduct="clearupProduct"
></CommonFormTableView>
@@ -995,21 +997,32 @@
},
// 浜у搧鏂板
addProductClick() {
- this.productId++
- this.tableData.push({
- productId: this.productId,
- id: 0,
- amount: 0,
- desc: "",
- name: "",
- number: "",
- price: 0,
- cost:'',
- profit:'',
- margin:'',
- total: 0,
- unit: ""
- })
+ // this.productId++
+ // this.tableData.push({
+ // productId: this.productId,
+ // id: 0,
+ // amount: 0,
+ // desc: "",
+ // name: "",
+ // number: "",
+ // price: 0,
+ // cost:'',
+ // profit:'',
+ // margin:'',
+ // total: 0,
+ // unit: ""
+ // })
+ // this.showSummary.show = true
+ },
+ // 鏂板鏂瑰紡淇敼
+ getSelectArray(val){
+ if(val.length>0){
+ val.map((item, index) => {
+ item.productId = this.tableData.length + index+1
+ })
+ }
+ this.tableData=this.tableData.concat(val);
+ this.productTableList.tableData=this.tableData
this.showSummary.show = true
},
// 浜у搧娓呯┖
--
Gitblit v1.8.0