|
@@ -6,6 +6,7 @@
|
|
|
{
|
|
|
text: '新建报价单',
|
|
|
action: () => newPriceSheet(),
|
|
|
+
|
|
|
},
|
|
|
]" @get-list="getList">
|
|
|
|
|
@@ -31,9 +32,8 @@
|
|
|
</template>
|
|
|
|
|
|
<template #amount="{ item }">
|
|
|
- <div>
|
|
|
- <span style="padding-right: 4px">{{ item.currency }}</span>
|
|
|
- <span>{{ moneyFormat(item.amount, 2) }}</span>
|
|
|
+ <div style="width:100%">
|
|
|
+ <span class="el-click" @click="getConfirmDtl(item,true)">{{ moneyFormat(item.amount, 2) }}</span>
|
|
|
</div>
|
|
|
</template>
|
|
|
<template #product="{ item }">
|
|
@@ -59,28 +59,32 @@
|
|
|
|
|
|
<template #btn="{item}">
|
|
|
<div style="width: 100%">
|
|
|
- <div v-if="isCurrentCompanyData(item.ofCompanyId)">
|
|
|
+ <div>
|
|
|
<span v-if="item.status == 0">
|
|
|
- <el-button type="primary" text v-debounce @click="getDtl(item, false)">修改</el-button>
|
|
|
- <el-button type="danger" text v-debounce @click="handleRepeal(item,'/saleQuotation/delete')">删除</el-button>
|
|
|
+ <el-button type="primary" text v-debounce @click="getDtl(item, false)" v-hasPermi="['quotation:edit']">修改</el-button>
|
|
|
+ <el-button type="danger" text v-debounce @click="handleRepeal(item,'/saleQuotation/delete')"
|
|
|
+ v-hasPermi="['quotation:del']">删除</el-button>
|
|
|
+ </span>
|
|
|
+ <span v-if="item.status !=88">
|
|
|
+ <!-- <el-button type="primary" text v-debounce v-if="item.status == 30 && item.quotationStatus==2"
|
|
|
+ @click="getDtl(item, false,true)">变更</el-button> -->
|
|
|
+ <span v-if="item.quotationStatus==2 && !item.extQuotationId && item.confirmStatus==0">
|
|
|
+ <el-button type="primary" text v-debounce v-hasPermi="['quotation:price:back']" @click="handleBack(item)">退回</el-button>
|
|
|
+ </span>
|
|
|
+ <span v-if="item.confirmStatus==2&&item.quotationStatus==2 && !item.extQuotationId">
|
|
|
+ <el-button type="primary" text v-debounce v-hasPermi="['quotation:price:change']" @click="handleForeign(item)">转对外</el-button>
|
|
|
+ </span>
|
|
|
+ <span v-if="item.status !=0 && item.status !=88 && item.confirmStatus==0">
|
|
|
+ <el-button type="danger" text v-debounce v-hasPermi="['quotation:remove']"
|
|
|
+ @click="handleRepeal(item,'/saleQuotation/cancellation')">作废</el-button>
|
|
|
+ </span>
|
|
|
</span>
|
|
|
<span v-if="item.status !=88">
|
|
|
- <el-button type="primary" text v-debounce v-if="item.quotationStatus==2 && !item.extQuotationId"
|
|
|
- @click="handleBack(item)">退回</el-button>
|
|
|
- <el-button type="primary" text v-debounce v-if="item.status == 30 && item.quotationStatus==2"
|
|
|
- @click="getDtl(item, false,true)">变更</el-button>
|
|
|
- <el-button type="primary" text v-debounce v-if="item.quotationStatus==2 && !item.extQuotationId"
|
|
|
- @click="handleForeign(item)">转对外</el-button>
|
|
|
- <el-button type="danger" text v-debounce v-if="item.status !=0 && item.status !=88"
|
|
|
- @click="handleRepeal(item,'/saleQuotation/cancellation')">作废</el-button>
|
|
|
<span v-if="item.confirmStatus==0 && item.quotationStatus==2">
|
|
|
<el-button type="primary" text v-debounce v-hasPermi="['quotation:price:confirm']"
|
|
|
@click="getConfirmDtl(item, false)">价格确认</el-button>
|
|
|
</span>
|
|
|
</span>
|
|
|
- <!-- <span v-if="item.status !=88">
|
|
|
-
|
|
|
- </span> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -292,7 +296,7 @@
|
|
|
v-loading="submitLoading">
|
|
|
<template #commodity>
|
|
|
<div style="width: 100%;padding-left:25px">
|
|
|
- <el-table :data="formData.data.quotationProductList" style="width: 100%;" default-expand-all>
|
|
|
+ <el-table :data="formData.data.quotationProductList" style="width: 100%;" row-key="productId">
|
|
|
<el-table-column type="expand" width="50" align="center">
|
|
|
<template #default="scope">
|
|
|
<div style="padding-left:50px">
|
|
@@ -380,13 +384,37 @@
|
|
|
<el-table-column prop="productColor" label="颜色" width="100" />
|
|
|
<el-table-column label="数量" width="110" prop="quantity">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="单价" width="110" prop="price">
|
|
|
+ <el-table-column label="指导价" width="100" prop="guidePrice">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <div style="width: 100%">
|
|
|
+ <span class="tag-active">{{row.guidePrice}}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="最低价" width="100" prop="minPrice">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <div style="width: 100%">
|
|
|
+ <span style="color:red">{{row.minPrice}}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="最高价" width="100" prop="maxPrice">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- ¥ {{row.price}}
|
|
|
+ <span style="color:red">{{row.maxPrice}}</span>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="单价" width="110" prop="price">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <el-form-item :prop="'quotationProductList.' + $index + '.price'" :rules="rulesOne.price" :inline-message="true"
|
|
|
+ class="margin-b-0 wid100">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.price" placeholder="请输入" style="width: 100%" :precision="2"
|
|
|
+ :controls="false" :min="row.minPrice" @change="changeForeignQuantity()" :max="row.maxPrice" />
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="amount" label="小计" width="110">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
@@ -409,7 +437,7 @@
|
|
|
v-loading="submitLoading">
|
|
|
<template #commodity>
|
|
|
<div style="width: 100%;padding-left:25px">
|
|
|
- <el-table :data="formData.dataTwo.quotationProductList" style="width: 100%;" default-expand-all>
|
|
|
+ <el-table :data="formData.dataTwo.quotationProductList" style="width: 100%;" row-key="id">
|
|
|
<el-table-column type="expand" width="50" align="center">
|
|
|
<template #default="scope">
|
|
|
<div style="padding-left:50px">
|
|
@@ -440,7 +468,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="图片" width="80">
|
|
|
+ <el-table-column label="图片" width="70" align="center">
|
|
|
<template #default="{ row }">
|
|
|
<div v-if="row.fileUrl">
|
|
|
<img :src="row.fileUrl" class="pic" @click="onPicture(row.fileUrl)" />
|
|
@@ -450,7 +478,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="productCode" label="商品编码" width="190" />
|
|
|
<el-table-column prop="productName" label="商品名称" min-width="200" />
|
|
|
- <el-table-column label="尺寸 (cm)" width="150">
|
|
|
+ <el-table-column label="尺寸 (cm)" width="120">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
{{row.productLength}} * {{row.productWidth}} * {{row.productHeight}}
|
|
@@ -458,9 +486,11 @@
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="productColor" label="颜色" width="100" />
|
|
|
- <el-table-column label="数量" width="110" prop="quantity">
|
|
|
+ <el-table-column label="数量" width="80" prop="quantity">
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="单价" width="110" prop="price">
|
|
|
+ <el-table-column label="工厂单价" width="100" prop="prodPrice">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="指导价" width="120" prop="price">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
<el-form-item :prop="'quotationProductList.' + $index + '.price'" :rules="rulesTwo.price" :inline-message="true"
|
|
@@ -471,6 +501,30 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="业务员最低报价" width="125" prop="minPrice">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <div style="width: 100%">
|
|
|
+ <el-form-item :prop="'quotationProductList.' + $index + '.minPrice'" :rules="rulesTwo.minPrice" :inline-message="true"
|
|
|
+ class="margin-b-0 wid100">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.minPrice" placeholder="请输入" style="width: 100%" :precision="2"
|
|
|
+ :controls="false" :min="row.price" @change="changeMinPrice" />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="上调比列(%)" width="110" prop="amplifyRatio">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <div style="width: 100%">
|
|
|
+ <el-form-item :prop="'quotationProductList.' + $index + '.amplifyRatio'" :rules="rulesTwo.amplifyRatio" :inline-message="true"
|
|
|
+ class="margin-b-0 wid100">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.amplifyRatio" placeholder="请输入" style="width: 100%" :precision="2"
|
|
|
+ :controls="false" :min="1" :max="100" @change="changeMinPrice" />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="业务员最高报价" width="125" prop="maxPrice">
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="amount" label="小计" width="110">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
@@ -482,7 +536,7 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</byForm>
|
|
|
- <template #footer>
|
|
|
+ <template #footer v-if="!isDetailData">
|
|
|
<el-button @click="confirmDialog = false" size="default" v-debounce>关 闭</el-button>
|
|
|
<el-button type="primary" size="default" v-debounce @click="confirmSubmit()">提 交</el-button>
|
|
|
</template>
|
|
@@ -506,7 +560,7 @@
|
|
|
<PriceSheetDetailList :rowData="detailRowData" dataType="1" @changeLeftData="changeLeftData"></PriceSheetDetailList>
|
|
|
<template #footer>
|
|
|
<el-button @click="detailDialog = false" size="defualt" v-debounce>关 闭</el-button>
|
|
|
- <el-button type="primary" v-debounce
|
|
|
+ <!-- <el-button type="primary" v-debounce
|
|
|
v-if="leftRowData.quotationStatus==2 && !leftRowData.extQuotationId &&leftRowData.status !=88 &&leftRowData.status !=70"
|
|
|
@click="handleBack(leftRowData)">退回</el-button>
|
|
|
<el-button type="primary" v-debounce
|
|
@@ -516,7 +570,7 @@
|
|
|
v-if="leftRowData.quotationStatus==2 && !leftRowData.extQuotationId &&leftRowData.status !=88 &&leftRowData.status !=70"
|
|
|
@click="handleForeign(leftRowData)">转对外</el-button>
|
|
|
<el-button type="danger" v-debounce v-if="leftRowData.status !=0 && leftRowData.status !=88 &&leftRowData.status !=70"
|
|
|
- @click="handleRepeal(leftRowData,'/saleQuotation/cancellation')">作废</el-button>
|
|
|
+ @click="handleRepeal(leftRowData,'/saleQuotation/cancellation')">作废</el-button> -->
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
|
|
@@ -609,6 +663,11 @@ const loading = ref(false);
|
|
|
const selectConfig = computed(() => {
|
|
|
return [
|
|
|
{
|
|
|
+ label: "业务公司",
|
|
|
+ prop: "ofCompanyId",
|
|
|
+ data: proxy.useUserStore().allDict["list_company_data"],
|
|
|
+ },
|
|
|
+ {
|
|
|
label: "报价单状态",
|
|
|
prop: "status",
|
|
|
data: statusData.value,
|
|
@@ -651,6 +710,13 @@ const config = computed(() => {
|
|
|
return [
|
|
|
{
|
|
|
attrs: {
|
|
|
+ label: "业务公司",
|
|
|
+ prop: "ofCompanyName",
|
|
|
+ width: 110,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ attrs: {
|
|
|
label: "报价单号",
|
|
|
slot: "code",
|
|
|
width: 180,
|
|
@@ -732,7 +798,7 @@ const config = computed(() => {
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "操作",
|
|
|
- width: 200,
|
|
|
+ width: 220,
|
|
|
slot: "btn",
|
|
|
align: "right",
|
|
|
fixed: "right",
|
|
@@ -1010,6 +1076,15 @@ const formConfig = computed(() => {
|
|
|
// },
|
|
|
{
|
|
|
type: "treeSelect",
|
|
|
+ prop: "ofCompanyId",
|
|
|
+ label: "业务公司",
|
|
|
+ data: proxy.useUserStore().allDict["tree_company_data"],
|
|
|
+ propsTreeLabel: "deptName",
|
|
|
+ propsTreeValue: "deptId",
|
|
|
+ itemWidth: 50,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "treeSelect",
|
|
|
prop: "companyId",
|
|
|
label: "报价公司",
|
|
|
data: treeData.value,
|
|
@@ -1069,6 +1144,9 @@ const formConfig = computed(() => {
|
|
|
});
|
|
|
const rules = ref({
|
|
|
type: [{ required: true, message: "请选择报价类型", trigger: "change" }],
|
|
|
+ ofCompanyId: [
|
|
|
+ { required: true, message: "请选择业务公司", trigger: "change" },
|
|
|
+ ],
|
|
|
companyId: [{ required: true, message: "请选择报价公司", trigger: "change" }],
|
|
|
buyCorporationId: [
|
|
|
{ required: true, message: "请选择客户公司", trigger: "change" },
|
|
@@ -1446,22 +1524,22 @@ const formDomOne = ref(null);
|
|
|
const foreignDialog = ref(false);
|
|
|
const formConfigOne = computed(() => {
|
|
|
return [
|
|
|
- {
|
|
|
- type: "title1",
|
|
|
- title: "利润点数",
|
|
|
- },
|
|
|
- {
|
|
|
- type: "number",
|
|
|
- prop: "coefficient",
|
|
|
- label: "利润点数",
|
|
|
- precision: 2,
|
|
|
- min: 0.01,
|
|
|
- controls: false,
|
|
|
- itemWidth: 25,
|
|
|
- fn: (val) => {
|
|
|
- publicTotalAmount(val);
|
|
|
- },
|
|
|
- },
|
|
|
+ // {
|
|
|
+ // type: "title1",
|
|
|
+ // title: "利润点数",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // type: "number",
|
|
|
+ // prop: "coefficient",
|
|
|
+ // label: "利润点数",
|
|
|
+ // precision: 2,
|
|
|
+ // min: 0.01,
|
|
|
+ // controls: false,
|
|
|
+ // itemWidth: 25,
|
|
|
+ // fn: (val) => {
|
|
|
+ // publicTotalAmount(val);
|
|
|
+ // },
|
|
|
+ // },
|
|
|
{
|
|
|
type: "title1",
|
|
|
title: "商品信息",
|
|
@@ -1507,24 +1585,30 @@ const handleForeign = (row) => {
|
|
|
const iele = formData.data.quotationProductList[i];
|
|
|
iele.quotationProductId = iele.id;
|
|
|
delete iele.id;
|
|
|
+ iele.guidePrice = iele.price;
|
|
|
+ iele.maxPrice = Number(
|
|
|
+ parseFloat((iele.amplifyRatio / 100 + 1) * iele.minPrice).toFixed(2)
|
|
|
+ );
|
|
|
+ iele.price = iele.minPrice;
|
|
|
for (let j = 0; j < iele.quotationProductBomList.length; j++) {
|
|
|
const jele = iele.quotationProductBomList[j];
|
|
|
jele.quotationProductBomId = jele.id;
|
|
|
delete jele.id;
|
|
|
- jele.priceCopy = jele.price;
|
|
|
- jele.price = Number(parseFloat(jele.price * 1.1)).toFixed(2);
|
|
|
+ // jele.priceCopy = jele.price;
|
|
|
+ // jele.price = Number(parseFloat(jele.price * 1.1)).toFixed(2);
|
|
|
// 默认系数
|
|
|
- jele.coefficient = 1.1;
|
|
|
+ // jele.coefficient = 1.1;
|
|
|
}
|
|
|
}
|
|
|
- changeQuantity();
|
|
|
+ // changeQuantity();
|
|
|
// 城市数据回显
|
|
|
- if (formData.data.buyCountryId) {
|
|
|
- getCityData(formData.data.buyCountryId, "20");
|
|
|
- }
|
|
|
- if (formData.data.buyProvinceId) {
|
|
|
- getCityData(formData.data.buyProvinceId, "30");
|
|
|
- }
|
|
|
+ // if (formData.data.buyCountryId) {
|
|
|
+ // getCityData(formData.data.buyCountryId, "20");
|
|
|
+ // }
|
|
|
+ // if (formData.data.buyProvinceId) {
|
|
|
+ // getCityData(formData.data.buyProvinceId, "30");
|
|
|
+ // }
|
|
|
+ changeForeignQuantity();
|
|
|
// 文件数据回显
|
|
|
getFileData();
|
|
|
let productIds = formData.data.quotationProductList.map((x) => x.productId);
|
|
@@ -1757,17 +1841,60 @@ const changeQuantityOne = () => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+const changeQuantityTwo = () => {
|
|
|
+ let money = 0;
|
|
|
+ if (
|
|
|
+ formData.dataTwo.quotationProductList &&
|
|
|
+ formData.dataTwo.quotationProductList.length > 0
|
|
|
+ ) {
|
|
|
+ // 单个产品的价格
|
|
|
+ for (let i = 0; i < formData.dataTwo.quotationProductList.length; i++) {
|
|
|
+ let iele = formData.dataTwo.quotationProductList[i];
|
|
|
+ money += Number(
|
|
|
+ parseFloat(Number(iele.quantity) * Number(iele.prodPrice)).toFixed(2)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ formData.dataTwo.amountTwo = parseFloat(money).toFixed(2);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const changeMinPrice = () => {
|
|
|
+ if (
|
|
|
+ formData.dataTwo.quotationProductList &&
|
|
|
+ formData.dataTwo.quotationProductList.length > 0
|
|
|
+ ) {
|
|
|
+ // 单个产品的价格
|
|
|
+ for (let i = 0; i < formData.dataTwo.quotationProductList.length; i++) {
|
|
|
+ let iele = formData.dataTwo.quotationProductList[i];
|
|
|
+ if (iele.minPrice && iele.amplifyRatio) {
|
|
|
+ iele.maxPrice = Number(
|
|
|
+ parseFloat(
|
|
|
+ Number(iele.minPrice) * (1 + Number(iele.amplifyRatio) / 100)
|
|
|
+ ).toFixed(2)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const isDetailData = ref(false);
|
|
|
const getConfirmDtl = (row, flag) => {
|
|
|
- formConfigTwo.disabled = flag;
|
|
|
+ if (!proxy.useUserStore().roles.includes("GM")) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ isDetailData.value = flag;
|
|
|
+ formOptionTwo.disabled = flag;
|
|
|
modalType.value = "edit";
|
|
|
confirmDialog.value = true;
|
|
|
proxy.post("/saleQuotation/detail", { id: row.id }).then((res) => {
|
|
|
formData.dataTwo = res;
|
|
|
- formData.dataTwo.quotationProductList =
|
|
|
- formData.dataTwo.quotationProductList.map((x) => ({
|
|
|
- ...x,
|
|
|
- price: x.prodPrice,
|
|
|
- }));
|
|
|
+ if (!flag) {
|
|
|
+ formData.dataTwo.quotationProductList =
|
|
|
+ formData.dataTwo.quotationProductList.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ price: x.prodPrice,
|
|
|
+ }));
|
|
|
+ }
|
|
|
// 文件数据回显
|
|
|
getFileDataOne();
|
|
|
let productIds = formData.dataTwo.quotationProductList.map(
|
|
@@ -1783,6 +1910,8 @@ const getConfirmDtl = (row, flag) => {
|
|
|
});
|
|
|
// 价格计算
|
|
|
changeQuantityOne();
|
|
|
+ changeQuantityTwo();
|
|
|
+ changeMinPrice();
|
|
|
});
|
|
|
};
|
|
|
|
|
@@ -1805,8 +1934,15 @@ const formConfigTwo = computed(() => {
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
+ prop: "amountTwo",
|
|
|
+ label: "工厂报价总额",
|
|
|
+ itemWidth: 25,
|
|
|
+ disabled: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
prop: "amount",
|
|
|
- label: "报价总金额",
|
|
|
+ label: "调整报价总额",
|
|
|
itemWidth: 25,
|
|
|
disabled: true,
|
|
|
},
|
|
@@ -1822,10 +1958,13 @@ const formOptionTwo = reactive({
|
|
|
const rulesTwo = ref({
|
|
|
price: [{ required: true, message: "请输入单价", trigger: "blur" }],
|
|
|
// coefficient: [{ required: true, message: "请输入系数", trigger: "blur" }],
|
|
|
+ minPrice: [{ required: true, message: "业务员最低报价", trigger: "blur" }],
|
|
|
+ amplifyRatio: [{ required: true, message: "上调比例", trigger: "blur" }],
|
|
|
});
|
|
|
|
|
|
const confirmSubmit = () => {
|
|
|
formDomTwo.value.handleSubmit(() => {
|
|
|
+ formData.dataTwo.quotationStatus = 2;
|
|
|
proxy
|
|
|
.msgConfirm()
|
|
|
.then((res) => {
|
|
@@ -1843,6 +1982,22 @@ const confirmSubmit = () => {
|
|
|
});
|
|
|
});
|
|
|
};
|
|
|
+
|
|
|
+const changeForeignQuantity = () => {
|
|
|
+ let money = 0;
|
|
|
+ if (
|
|
|
+ formData.data.quotationProductList &&
|
|
|
+ formData.data.quotationProductList.length > 0
|
|
|
+ ) {
|
|
|
+ // 单个产品的价格
|
|
|
+ for (let i = 0; i < formData.data.quotationProductList.length; i++) {
|
|
|
+ let iele = formData.data.quotationProductList[i];
|
|
|
+ iele.amount = Number(parseFloat(iele.price * iele.quantity).toFixed(2));
|
|
|
+ money += Number(iele.amount);
|
|
|
+ }
|
|
|
+ formData.data.amount = parseFloat(money).toFixed(2);
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|