From 0ad2c4106d6f570e0ca63c8fe5093e6f97492534 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期六, 11 十月 2025 17:44:10 +0800
Subject: [PATCH] yys 1.修改销售出库-煤种选中问题 2.采购管理增加车牌字段
---
src/views/salesOutbound/components/formDia.vue | 125 +++++++++++++++++++++++++++++------------
1 files changed, 87 insertions(+), 38 deletions(-)
diff --git a/src/views/salesOutbound/components/formDia.vue b/src/views/salesOutbound/components/formDia.vue
index 8607196..1425ea4 100644
--- a/src/views/salesOutbound/components/formDia.vue
+++ b/src/views/salesOutbound/components/formDia.vue
@@ -7,6 +7,7 @@
<el-col :span="12">
<el-form-item label="閿�鍞棩鏈�" prop="saleDate">
<el-date-picker
+ :disabled="operationType === 'view'"
v-model="form.saleDate"
type="date"
value-format="YYYY-MM-DD"
@@ -19,12 +20,12 @@
</el-col>
<el-col :span="12">
<el-form-item label="瀹㈡埛" prop="customerId">
- <el-select v-model="form.customerId" placeholder="璇烽�夋嫨瀹㈡埛">
+ <el-select v-model="form.customerId" placeholder="璇烽�夋嫨瀹㈡埛" :disabled="operationType === 'view'">
<el-option
v-for="item in customerOptions"
- :key="item.id"
- :label="item.customerName"
- :value="item.id"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
/>
</el-select>
</el-form-item>
@@ -33,7 +34,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="鐓ょ" prop="coalId">
- <el-select v-model="form.coalId" placeholder="璇烽�夋嫨鐓ょ" @change="setInfo">
+ <el-select v-model="form.coalId" placeholder="璇烽�夋嫨鐓ょ" @change="setInfo" :disabled="operationType === 'view'">
<el-option
v-for="item in coalOptions"
:key="item.id"
@@ -45,67 +46,82 @@
</el-col>
<el-col :span="12">
<el-form-item label="鍗曚綅" prop="unit">
- <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" maxlength="30" />
+ <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" maxlength="30" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="搴撳瓨鏁伴噺" prop="inventoryQuantity">
- <el-input v-model="form.inventoryQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" />
+ <el-input v-model="form.inventoryQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鍗曚环(鍚◣)" prop="priceIncludingTax">
- <el-input v-model="form.priceIncludingTax" placeholder="璇疯緭鍏ラ攢鍞崟浠�(鍚◣)" maxlength="30" type="number" />
+ <el-form-item label="鍗曚环(鍚◣)" prop="priceIncludingTax" @change="mathProfit">
+ <el-input v-model="form.priceIncludingTax" placeholder="璇疯緭鍏ラ攢鍞崟浠�(鍚◣)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="閿�鍞暟閲�" prop="saleQuantity">
- <el-input v-model="form.saleQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" />
+ <el-form-item label="閿�鍞暟閲�" prop="saleQuantity" @change="mathProfit">
+ <el-input v-model="form.saleQuantity" placeholder="璇疯緭鍏ラ攢鍞暟閲�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="閿�鍞崟浠�(鍚◣)" prop="salePrice" @change="mathProfit">
- <el-input v-model="form.salePrice" placeholder="璇疯緭鍏ラ攢鍞崟浠�(鍚◣)" maxlength="30" type="number" />
+ <el-input v-model="form.salePrice" placeholder="璇疯緭鍏ラ攢鍞崟浠�(鍚◣)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="閿�鍞�讳环(鍚◣)" prop="totalAmount">
- <el-input v-model="form.totalAmount" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" />
+ <el-input v-model="form.totalAmount" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="杩愯垂" prop="freight">
- <el-input v-model="form.freight" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" />
+ <el-form-item label="閲囪喘杩愯垂" prop="purchasingFreight" @change="mathProfit">
+ <el-input v-model="form.purchasingFreight" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
+ <el-col :span="12">
+ <el-form-item label="閿�鍞繍璐�" prop="salesFreight" @change="mathProfit">
+ <el-input v-model="form.salesFreight" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+ </el-form-item>
+ </el-col>
<el-col :span="12">
<el-form-item label="璐攢鐓ょ◣鐜�(%)" prop="taxCoal">
- <el-input v-model="form.taxCoal" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="杩愯緭绋庣巼(%)" prop="taxTrans">
- <el-input v-model="form.taxTrans" placeholder="璇疯緭鍏ラ攢鍞�讳环(鍚◣)" maxlength="30" type="number" />
+ <el-input v-model="form.taxCoal" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
+ <el-col :span="12">
+ <el-form-item label="杩愯緭绋庣巼(%)" prop="taxTrans">
+ <el-input v-model="form.taxTrans" placeholder="璇疯緭鍏�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+ </el-form-item>
+ </el-col>
<el-col :span="12">
<el-form-item label="姣涘埄娑�" prop="grossProfit">
- <el-input v-model="form.grossProfit" placeholder="姣涘埄娑�" maxlength="30" type="number" />
+ <el-input v-model="form.grossProfit" placeholder="姣涘埄娑�" maxlength="30" type="number" :disabled="operationType === 'view'"/>
</el-form-item>
</el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鍑�鍒╂鼎" prop="netProfit">
+ <el-input v-model="form.netProfit" placeholder="鍑�鍒╂鼎" maxlength="30" type="number" :disabled="operationType === 'view'"/>
+ </el-form-item>
+ </el-col>
<el-col :span="12">
- <el-form-item label="鍑�鍒╂鼎" prop="netProfit">
- <el-input v-model="form.netProfit" placeholder="鍑�鍒╂鼎" maxlength="30" type="number" />
+ <el-form-item label="娣诲姞鑷冲緟琛ュ簱" prop="isAdd">
+ <el-select v-model="form.isAdd" placeholder="璇烽�夋嫨鏄惁闇�瑕佸緟琛ュ簱" :disabled="operationType === 'view'">
+ <el-option label="鏄�" :value="true" />
+ <el-option label="鍚�" :value="false" />
+ </el-select>
</el-form-item>
</el-col>
</el-row>
@@ -122,7 +138,7 @@
<script setup>
import {reactive, ref} from "vue";
-import {addOrEditSalesRecord, customerList, officialList} from "../../../api/salesOutbound/index.js";
+import {addOrEditSalesRecord, customerList, officialList} from "@/api/salesOutbound/index.js";
import useUserStore from '@/store/modules/user'
const { proxy } = getCurrentInstance()
@@ -141,16 +157,32 @@
saleQuantity: '',
salePrice: '',
totalAmount: '',
- freight: '',
+ purchasingFreight: '',
taxCoal: '',
taxTrans: '',
grossProfit: '',
netProfit: '',
inventoryQuantity: '',
priceIncludingTax: '',
+ salesFreight: '',
+ isAdd: false
},
rules: {
saleDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" },],
+ customerId: [{ required: true, message: "璇烽�夋嫨瀹㈡埛", trigger: "change" },],
+ coalId: [{ required: true, message: "璇烽�夋嫨鐓ょ", trigger: "change" },],
+ unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ saleQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ salePrice: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ totalAmount: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ purchasingFreight: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
+ taxCoal: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ taxTrans: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ grossProfit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ netProfit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ inventoryQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ priceIncludingTax: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
+ isAdd: [{ required: true, message: "璇烽�夋嫨鏄惁娣诲姞鑷冲緟琛ュ簱", trigger: "change" },],
}
})
@@ -158,21 +190,35 @@
// 鎵撳紑寮规
const openDialog = async (type, row) => {
+ if(type === 'add'){
+ form.value = {}
+ }else{
+ form.value = {...row}
+ }
+ operationType.value = type
dialogVisitable.value = true
form.value.saleDate = proxy.getCurrentDate()
- customerList().then((res) => {
- customerOptions.value = res.data
- })
- officialList().then((res) => {
- coalOptions.value = res.data
- })
+ const [supplyRes, coalRes] = await Promise.all([
+ customerList(),
+ officialList(),
+ ]);
+ let supplyData = supplyRes.data;
+ coalOptions.value = coalRes.data;
+ customerOptions.value = supplyData.map((item) => ({
+ value: item.id,
+ label: item.customerName,
+ }));
+
let res = await userStore.getInfo()
form.value.registrantId = res.user.userId
form.value.taxCoal = 13
form.value.taxTrans = 9
- form.value.freight = 20
- if (type === 'edit') {
- form.value = {...row}
+ form.value.purchasingFreight = 20
+ form.value.salesFreight = 0
+ form.value.isAdd = false
+ if (type !== 'add') {
+ form.value = {...row,
+ }
}
}
// 澶嶅埗鐓ょ鐩稿叧淇℃伅
@@ -196,7 +242,8 @@
const purchaseTons = form.value.inventoryQuantity; // 搴撳瓨鏁伴噺
const saleTons = form.value.saleQuantity; // 閿�鍞暟閲�
const purchasePricePerTon = form.value.priceIncludingTax; // 鍚◣鍗曚环
- const transportPricePerTon = form.value.freight; // 杩愯垂
+ const transportPricePerTon = form.value.purchasingFreight; // 閲囪喘杩愯垂
+ const salesFreight = form.value.salesFreight; // 閿�鍞繍璐�
const salePricePerTon = form.value.salePrice; // 閿�鍞崟浠凤紙鍏�/鍚級
const coalTaxRate = form.value.taxCoal / 100; // 璐攢鐓ょ◣鐜囷紙13%锛�
const transportTaxRate = form.value.taxTrans / 100; // 杩愯緭绋庣巼锛�9%锛�
@@ -211,13 +258,15 @@
const D = C * transportTaxRate * purchaseTons; // 杩愯垂杩涢」绋庨
const E = salePricePerTon / (1 + coalTaxRate); // 閿�鍞笉鍚◣鍗曚环
const F = E * coalTaxRate * saleTons; // 閿�椤圭◣棰�
+ const R = salesFreight / (1 + transportTaxRate); // 閿�鍞叅杩愯垂涓嶅惈绋庡崟浠�
+ const S = R * transportTaxRate * saleTons; // 閿�鍞叅杩愯垂杩涢」绋庨
// 姣涘埄娑� = 閿�鍞敹鍏� - 鎴愭湰鎴愭湰锛堣喘鐓�+杩愯垂锛夌殑鎴愭湰閮ㄥ垎
- const G = E * saleTons - A * saleTons - C * saleTons;
+ const G = E * saleTons - A * saleTons - C * saleTons - R * saleTons;
form.value.grossProfit = G.toFixed(2);
// 搴旂即绾冲鍊肩◣ = 閿�椤圭◣ - 鍙姷鎵h繘椤圭◣锛堟寜閿�鍞噺姣斾緥璁$畻锛�
- const H = F - (A * coalTaxRate * saleTons) - (C * transportTaxRate * saleTons);
+ const H = F - (A * coalTaxRate * saleTons) - (C * transportTaxRate * saleTons) - (R * transportTaxRate * saleTons);
// 澧炲�肩◣闄勫姞绋�
const K = H * surchargeRate;
--
Gitblit v1.9.3