From 3303475ef92814062b13e251144b7c03da1d17d8 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期四, 21 十二月 2023 18:34:44 +0800
Subject: [PATCH] 销售明细单如果报价单必填则产品只能选择和报价单关联的,如果报价单非必填则可以选择所有产品
---
src/views/sales/quotation/AddQuotationDialog.vue | 14 +++++++++++---
src/components/makepager/CommonFormTableView.vue | 24 ++++++++++++++++--------
src/views/sales/salesDetails/AddSalesDetailsDialog.vue | 15 ++++++++++++---
3 files changed, 39 insertions(+), 14 deletions(-)
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index ec70ab3..194cfc0 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -1,6 +1,7 @@
<template>
<div class="page-view">
<el-form ref="form" :model="tableList" :show-message="false" label-position="right">
+ {{ tableList.tableData }}
<el-table
ref="fromTable"
:data="tableList.tableData"
@@ -44,7 +45,7 @@
:disabled="!isOperate"
@change="
(val) => {
- commonInputChange(val, item.prop, scope.row)
+ commonInputChange(val, item.prop, scope.row,scope)
}
"
></el-input>
@@ -105,7 +106,7 @@
style="width: 100%; margin-right: 5px"
@change="
(val) => {
- commonInputChange(val, item.prop, scope.row)
+ commonInputChange(val, item.prop, scope.row,scope)
}
"
></el-input-number>
@@ -127,7 +128,7 @@
style="width: 100%; margin-right: 5px"
@change="
(val) => {
- commonInputChange(val, item.prop, scope.row)
+ commonInputChange(val, item.prop, scope.row,scope)
}
"
></el-input-number>
@@ -137,7 +138,7 @@
{{ (scope.row.price&&scope.row.cost)?Number(scope.row.price)-Number(scope.row.cost):'' }}
</template>
<template v-if="pageName=='quotation'&&item.prop=='margin'">
- {{ (scope.row.price&&scope.row.cost)?((Number(scope.row.price)-Number(scope.row.cost))*100/Number(scope.row.cost)).toFixed(2)+'%':'' }}
+ {{ (scope.row.price&&scope.row.cost)?((Number(scope.row.price)-Number(scope.row.cost))*100/Number(scope.row.cost)).toFixed(2):'' }}
</template>
<template v-else>
{{ scope.row[item.prop] }}
@@ -160,7 +161,7 @@
style="width: 100%; margin-right: 5px"
@change="
(val) => {
- commonInputChange(val, item.prop, scope.row)
+ commonInputChange(val, item.prop, scope.row,scope)
}
"
></el-input-number>
@@ -407,9 +408,7 @@
add() {
this.$emit("addProductClick")
},
- commonInputChange(val, prop, row) {
- console.log(val, prop)
- console.log(row)
+ commonInputChange(val, prop, row,scope) {
if (prop === "amount") {
this.tableList.tableData.map((ite) => {
if (ite.name === row.name) {
@@ -417,6 +416,15 @@
}
})
}
+ if(this.pageName=='quotation'&&prop=='cost'&&scope.row.cost){
+ let value=scope.row.cost
+ let reg2 =
+ /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
+ if (!reg2.test(value)||value==0) {
+ this.$message.error("鎴愭湰鍗曚环闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒")
+ }
+ this.$forceUpdate()
+ }
this.$emit("inputContent", val, prop, row)
},
// 娓呯┖
diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue
index a0ac6ae..268f5f1 100644
--- a/src/views/sales/quotation/AddQuotationDialog.vue
+++ b/src/views/sales/quotation/AddQuotationDialog.vue
@@ -477,8 +477,16 @@
if (this.isNoProduct) {
this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖")
} else {
+ for (let i = 0; i < this.tableData.length; i++) {
+ if (this.tableData[i].cost||Number(this.tableData[i].cost)==0) {
+ let reg = /^\+?[1-9]\d*$/;
+ if(!reg.test(this.tableData[i].cost)){
+ this.$message.error("鎴愭湰鍗曚环闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒")
+ return true;
+ }
+ }
+ }
const params = this.saveParams()
- console.log(params)
if (this.editConfig.title === "鏂板缓") {
getAddQuotation(params).then((res) => {
console.log(res)
@@ -636,9 +644,9 @@
{ label: "浜у搧缂栧彿", prop: "number" },
{ label: "鍗曚綅", prop: "unit" },
{ label: "閿�鍞崟浠�", prop: "price", inputFloat: true, isRequird: true },
- { label: "鎴愭湰鍗曚环", prop: "cost",inputFloat: true },
+ { label: "鎴愭湰鍗曚环", prop: "cost",input: true },
{ label: "姣涘埄", prop: "profit" },
- { label: "姣涘埄鐜�", prop: "margin",min:90},
+ { label: "姣涘埄鐜�(%)", prop: "margin",min:90},
{ label: "鏁伴噺", prop: "amount", inputNumber: true, isRequird: true },
{ label: "浠风◣鍚堣", prop: "total", inputFloat: true }
]
diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
index 6aabb56..0477013 100644
--- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
+++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -408,7 +408,7 @@
:show-summary="showSummary"
pageName="quotation"
:isOperate="((autoCodeHeadersObj.bjd=='yes'&&editConfig.infomation.quotation_number)||autoCodeHeadersObj.bjd!='yes')?true:false"
- :quotationNumber="editConfig.infomation.quotation_number"
+ :quotationNumber="autoCodeHeadersObj.bjd=='yes'?editConfig.infomation.quotation_number:''"
:product-table-list="productTableList"
@inputContent="inputContent"
@addProductClick="addProductClick"
@@ -674,6 +674,15 @@
if (this.isNoProduct) {
this.$message.error("璇烽�夋嫨浜у搧")
} else {
+ for (let i = 0; i < this.tableData.length; i++) {
+ if (this.tableData[i].cost||Number(this.tableData[i].cost)==0) {
+ let reg = /^\+?[1-9]\d*$/;
+ if(!reg.test(this.tableData[i].cost)){
+ this.$message.error("鎴愭湰鍗曚环闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒")
+ return true;
+ }
+ }
+ }
const params = this.saveParams()
if (this.editConfig.title === "鏂板缓") {
getAddSalesDetails(params).then((res) => {
@@ -961,9 +970,9 @@
{ label: "浜у搧缂栧彿", prop: "number" },
{ label: "鍗曚綅", prop: "unit" },
{ label: "閿�鍞崟浠�", prop: "price",inputFloat: !isBjdRequird, isRequird: true },
- { label: "鎴愭湰鍗曚环", prop: "cost",inputFloat: !isBjdRequird},
+ { label: "鎴愭湰鍗曚环", prop: "cost",input: !isBjdRequird},
{ label: "姣涘埄", prop: "profit" },
- { label: "姣涘埄鐜�", prop: "margin",min:90},
+ { label: "姣涘埄鐜�(%)", prop: "margin",min:90},
{ label: "鏁伴噺", prop: "amount", inputNumber: true, isRequird: true },
{ label: "浠风◣鍚堣", prop: "total" }
]
--
Gitblit v1.8.0