From 460ed5e7904c3ef8131a0a26f354e8e2c669425b Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 26 五月 2026 11:43:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_鹤壁_强信宇_pro' into dev_鹤壁_强信宇_pro
---
multiple/config.json | 2
multiple/assets/logo/SDTXLogo.png | 0
src/views/salesManagement/returnOrder/components/formDia.vue | 4
src/views/salesManagement/receiptPaymentLedger/index.vue | 2
src/views/salesManagement/salesLedger/index.vue | 122 +++++++++-------
src/views/salesManagement/salesQuotation/index.vue | 2
src/router/index.js | 240 +++++++++++++++++-----------------
7 files changed, 194 insertions(+), 178 deletions(-)
diff --git a/multiple/assets/logo/SDTXLogo.png b/multiple/assets/logo/SDTXLogo.png
index f69cf0b..e893982 100644
--- a/multiple/assets/logo/SDTXLogo.png
+++ b/multiple/assets/logo/SDTXLogo.png
Binary files differ
diff --git a/multiple/config.json b/multiple/config.json
index 64f0b2d..02fc35f 100644
--- a/multiple/config.json
+++ b/multiple/config.json
@@ -98,7 +98,7 @@
},
"QXY": {
"env": {
- "VITE_APP_TITLE": "寮轰俊瀹囩數鍣ㄤ簯涓绘満",
+ "VITE_APP_TITLE": "寮轰俊瀹�",
"VITE_BASE_API": "http://36.134.154.10:9000",
"VITE_JAVA_API": "http://36.134.154.10:9001"
},
diff --git a/src/router/index.js b/src/router/index.js
index 7be3668..61568ce 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -132,126 +132,126 @@
],
},
// 璐㈠姟绠$悊妯″潡璺敱
- // {
- // path: "/financial",
- // component: Layout,
- // hidden: false,
- // redirect: "/financial/general-ledger",
- // alwaysShow: true,
- // meta: { title: "璐㈠姟绠$悊", icon: "money" },
- // children: [
- // {
- // path: "sales-out",
- // component: () => import("@/views/financialManagement/receivable/salesOut.vue"),
- // name: "SalesOut",
- // meta: { title: "閿�鍞嚭搴�" },
- // },
- // {
- // path: "sales-return",
- // component: () => import("@/views/financialManagement/receivable/salesReturn.vue"),
- // name: "SalesReturn",
- // meta: { title: "閿�鍞��璐�" },
- // },
- //
- // {
- // path: "invoice-apply",
- // component: () => import("@/views/financialManagement/receivable/invoiceApply.vue"),
- // name: "InvoiceApply",
- // meta: { title: "寮�绁ㄧ敵璇�" },
- // },
- // {
- // path: "output-invoice",
- // component: () => import("@/views/financialManagement/receivable/outputInvoice.vue"),
- // name: "OutputInvoice",
- // meta: { title: "閿�椤瑰彂绁�" },
- // },
- // {
- // path: "receipt",
- // component: () => import("@/views/financialManagement/receivable/receipt.vue"),
- // name: "Receipt",
- // meta: { title: "鏀舵鍗�" },
- // },
- // {
- // path: "receivable-reconciliation",
- // component: () => import("@/views/financialManagement/receivable/reconciliation.vue"),
- // name: "ReceivableReconciliation",
- // meta: { title: "搴旀敹瀵硅处" },
- // },
- // {
- // path: "purchase-in",
- // component: () => import("@/views/financialManagement/payable/purchaseIn.vue"),
- // name: "PurchaseIn",
- // meta: { title: "閲囪喘鍏ュ簱" },
- // },
- // {
- // path: "purchase-return",
- // component: () => import("@/views/financialManagement/payable/purchaseReturn.vue"),
- // name: "PurchaseReturn",
- // meta: { title: "閲囪喘閫�璐�" },
- // },
- // {
- // path: "input-invoice",
- // component: () => import("@/views/financialManagement/payable/input-invoice.vue"),
- // name: "InputInvoice",
- // meta: { title: "杩涢」鍙戠エ" },
- // },
- // {
- // path: "payment-apply",
- // component: () => import("@/views/financialManagement/payable/paymentApply.vue"),
- // name: "PaymentApply",
- // meta: { title: "浠樻鐢宠" },
- // },
- //
- // {
- // path: "payment",
- // component: () => import("@/views/financialManagement/payable/payment.vue"),
- // name: "Payment",
- // meta: { title: "浠樻鍗�" },
- // },
- // {
- // path: "payable-reconciliation",
- // component: () => import("@/views/financialManagement/payable/reconciliation.vue"),
- // name: "PayableReconciliation",
- // meta: { title: "搴斾粯瀵硅处" },
- // },
- // {
- // path: "fixed-assets",
- // component: () => import("@/views/financialManagement/assets/fixedAssets.vue"),
- // name: "FixedAssets",
- // meta: { title: "鍥哄畾璧勪骇" },
- // },
- // {
- // path: "intangible-assets",
- // component: () => import("@/views/financialManagement/assets/intangibleAssets.vue"),
- // name: "IntangibleAssets",
- // meta: { title: "鏃犲舰璧勪骇" },
- // },
- // {
- // path: "general-ledger",
- // component: () => import("@/views/financialManagement/generalLedger/index.vue"),
- // name: "GeneralLedger",
- // meta: { title: "鎬诲笎绉戠洰" },
- // },
- // {
- // path: "voucher",
- // component: () => import("@/views/financialManagement/voucher/index.vue"),
- // name: "Voucher",
- // meta: { title: "鍑瘉" },
- // },
- // {
- // path: "voucher-general-ledger",
- // component: () => import("@/views/financialManagement/voucher/generalLedger.vue"),
- // name: "VoucherGeneralLedger",
- // meta: { title: "绉戠洰鎬诲笎" },
- // },
- // {
- // path: "voucher-detail-ledger",
- // component: () => import("@/views/financialManagement/voucher/detailLedger.vue"),
- // name: "VoucherDetailLedger",
- // meta: { title: "绉戠洰鏄庣粏甯�" },
- // },
- // ],
- // },
+ /*{
+ path: "/financial",
+ component: Layout,
+ hidden: false,
+ redirect: "/financial/general-ledger",
+ alwaysShow: true,
+ meta: { title: "璐㈠姟绠$悊", icon: "money" },
+ children: [
+ {
+ path: "sales-out",
+ component: () => import("@/views/financialManagement/receivable/salesOut.vue"),
+ name: "SalesOut",
+ meta: { title: "閿�鍞嚭搴�" },
+ },
+ {
+ path: "sales-return",
+ component: () => import("@/views/financialManagement/receivable/salesReturn.vue"),
+ name: "SalesReturn",
+ meta: { title: "閿�鍞��璐�" },
+ },
+
+ {
+ path: "invoice-apply",
+ component: () => import("@/views/financialManagement/receivable/invoiceApply.vue"),
+ name: "InvoiceApply",
+ meta: { title: "寮�绁ㄧ敵璇�" },
+ },
+ {
+ path: "output-invoice",
+ component: () => import("@/views/financialManagement/receivable/outputInvoice.vue"),
+ name: "OutputInvoice",
+ meta: { title: "閿�椤瑰彂绁�" },
+ },
+ {
+ path: "receipt",
+ component: () => import("@/views/financialManagement/receivable/receipt.vue"),
+ name: "Receipt",
+ meta: { title: "鏀舵鍗�" },
+ },
+ {
+ path: "receivable-reconciliation",
+ component: () => import("@/views/financialManagement/receivable/reconciliation.vue"),
+ name: "ReceivableReconciliation",
+ meta: { title: "搴旀敹瀵硅处" },
+ },
+ {
+ path: "purchase-in",
+ component: () => import("@/views/financialManagement/payable/purchaseIn.vue"),
+ name: "PurchaseIn",
+ meta: { title: "閲囪喘鍏ュ簱" },
+ },
+ {
+ path: "purchase-return",
+ component: () => import("@/views/financialManagement/payable/purchaseReturn.vue"),
+ name: "PurchaseReturn",
+ meta: { title: "閲囪喘閫�璐�" },
+ },
+ {
+ path: "input-invoice",
+ component: () => import("@/views/financialManagement/payable/input-invoice.vue"),
+ name: "InputInvoice",
+ meta: { title: "杩涢」鍙戠エ" },
+ },
+ {
+ path: "payment-apply",
+ component: () => import("@/views/financialManagement/payable/paymentApply.vue"),
+ name: "PaymentApply",
+ meta: { title: "浠樻鐢宠" },
+ },
+
+ {
+ path: "payment",
+ component: () => import("@/views/financialManagement/payable/payment.vue"),
+ name: "Payment",
+ meta: { title: "浠樻鍗�" },
+ },
+ {
+ path: "payable-reconciliation",
+ component: () => import("@/views/financialManagement/payable/reconciliation.vue"),
+ name: "PayableReconciliation",
+ meta: { title: "搴斾粯瀵硅处" },
+ },
+ {
+ path: "fixed-assets",
+ component: () => import("@/views/financialManagement/assets/fixedAssets.vue"),
+ name: "FixedAssets",
+ meta: { title: "鍥哄畾璧勪骇" },
+ },
+ {
+ path: "intangible-assets",
+ component: () => import("@/views/financialManagement/assets/intangibleAssets.vue"),
+ name: "IntangibleAssets",
+ meta: { title: "鏃犲舰璧勪骇" },
+ },
+ {
+ path: "general-ledger",
+ component: () => import("@/views/financialManagement/generalLedger/index.vue"),
+ name: "GeneralLedger",
+ meta: { title: "鎬诲笎绉戠洰" },
+ },
+ {
+ path: "voucher",
+ component: () => import("@/views/financialManagement/voucher/index.vue"),
+ name: "Voucher",
+ meta: { title: "鍑瘉" },
+ },
+ {
+ path: "voucher-general-ledger",
+ component: () => import("@/views/financialManagement/voucher/generalLedger.vue"),
+ name: "VoucherGeneralLedger",
+ meta: { title: "绉戠洰鎬诲笎" },
+ },
+ {
+ path: "voucher-detail-ledger",
+ component: () => import("@/views/financialManagement/voucher/detailLedger.vue"),
+ name: "VoucherDetailLedger",
+ meta: { title: "绉戠洰鏄庣粏甯�" },
+ },
+ ],
+ },*/
];
// 鍔ㄦ�佽矾鐢憋紝鍩轰簬鐢ㄦ埛鏉冮檺鍔ㄦ�佸幓鍔犺浇
diff --git a/src/views/salesManagement/receiptPaymentLedger/index.vue b/src/views/salesManagement/receiptPaymentLedger/index.vue
index 8852a32..0ec3e3b 100644
--- a/src/views/salesManagement/receiptPaymentLedger/index.vue
+++ b/src/views/salesManagement/receiptPaymentLedger/index.vue
@@ -174,7 +174,7 @@
});
};
const formattedNumber = (row, column, cellValue) => {
- return cellValue ? parseFloat(cellValue).toFixed(2) : "0.00";
+ return cellValue ? parseFloat(cellValue).toFixed(8) : "0.00";
};
// 涓昏〃鍚堣鏂规硶
const summarizeMainTable = param => {
diff --git a/src/views/salesManagement/returnOrder/components/formDia.vue b/src/views/salesManagement/returnOrder/components/formDia.vue
index 6a6d756..7faa4d7 100644
--- a/src/views/salesManagement/returnOrder/components/formDia.vue
+++ b/src/views/salesManagement/returnOrder/components/formDia.vue
@@ -650,14 +650,14 @@
const calculateRowAmount = (row) => {
const stockOutNum = Number(row.returnQuantity || 0);
const price = Number(row.price || 0);
- row.amount = (stockOutNum * price).toFixed(2);
+ row.amount = (stockOutNum * price).toFixed(8);
};
const calculateTotalRefund = () => {
const total = tableData.value.reduce((sum, row) => {
return sum + Number(row.amount || 0);
}, 0);
- form.value.refundAmount = total.toFixed(2);
+ form.value.refundAmount = total.toFixed(8);
};
const availableProducts = ref([]);
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 56f9fd2..5a5156c 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -329,7 +329,7 @@
:label="item.customerName"
:value="item.id">
{{
- item.customerName + "鈥斺��" + item.taxpayerIdentificationNumber
+ item.customerName
}}
</el-option>
</el-select>
@@ -456,13 +456,13 @@
prop="taxRate" />
<el-table-column label="鍚◣鍗曚环(鍏�)"
prop="taxInclusiveUnitPrice"
- :formatter="formattedNumber" />
+ :formatter="format8" />
<el-table-column label="鍚◣鎬讳环(鍏�)"
prop="taxInclusiveTotalPrice"
- :formatter="formattedNumber" />
+ :formatter="format8" />
<el-table-column label="涓嶅惈绋庢�讳环(鍏�)"
prop="taxExclusiveTotalPrice"
- :formatter="formattedNumber" />
+ :formatter="format8" />
<el-table-column label="鏄惁鐢熶骇"
prop="isProduction"
width="150">
@@ -664,11 +664,11 @@
<el-col :span="12">
<el-form-item label="鍚◣鍗曚环(鍏�)锛�"
prop="taxInclusiveUnitPrice">
- <el-input-number :step="0.01"
+ <el-input-number :step="1"
:min="0"
v-model="productForm.taxInclusiveUnitPrice"
style="width: 100%"
- :precision="2"
+ :precision="8"
placeholder="璇疯緭鍏�"
clearable
@change="calculateFromUnitPrice" />
@@ -677,12 +677,12 @@
<el-col :span="12">
<el-form-item label="鏁伴噺锛�"
prop="quantity">
- <el-input-number :step="0.1"
+ <el-input-number :step="1"
:min="0"
v-model="productForm.quantity"
placeholder="璇疯緭鍏�"
clearable
- :precision="2"
+ :precision="8"
@change="calculateFromQuantity"
style="width: 100%" />
</el-form-item>
@@ -1396,11 +1396,27 @@
return productOptions.value;
});
};
+ const calculateTaxExclusiveTotalPrice8 = (inclusiveTotalPrice, taxRate) => {
+ const taxRateDecimal = taxRate / 100;
+ return (inclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(8);
+ };
+
+ const calculateTaxIncludeTotalPrice8 = (unitPrice, quantity) => {
+ return (unitPrice * quantity).toFixed(8);
+ };
+
+ const format8 = (row, column, cellValue) => {
+ if (cellValue === undefined || cellValue === null || cellValue === "") {
+ return "0.00000000";
+ }
+ return parseFloat(cellValue).toFixed(8);
+ };
+
const formattedNumber = (row, column, cellValue) => {
if (cellValue === undefined || cellValue === null || cellValue === "") {
return "0.00";
}
- return parseFloat(cellValue).toFixed(2);
+ return parseFloat(cellValue).toFixed(8);
};
const findLedgerRecordByRow = row => {
if (!row) return null;
@@ -1453,7 +1469,7 @@
if (!isCurrentUserMaintainer(row)) {
return "*****";
}
- return formattedNumber(row, column, cellValue);
+ return format8(row, column, cellValue);
};
// 鑾峰彇tree瀛愭暟鎹�
const getModels = value => {
@@ -1568,7 +1584,10 @@
"contractAmount",
"taxInclusiveTotalPrice",
"taxExclusiveTotalPrice",
- ]);
+ ], {
+ taxInclusiveTotalPrice: { decimalPlaces: 8 },
+ taxExclusiveTotalPrice: { decimalPlaces: 8 },
+ });
};
// 瀛愯〃鍚堣鏂规硶
const summarizeChildrenTable = (param, parentRow) => {
@@ -1594,7 +1613,11 @@
"taxInclusiveUnitPrice",
"taxInclusiveTotalPrice",
"taxExclusiveTotalPrice",
- ]);
+ ], {
+ taxInclusiveUnitPrice: { decimalPlaces: 8 },
+ taxInclusiveTotalPrice: { decimalPlaces: 8 },
+ taxExclusiveTotalPrice: { decimalPlaces: 8 },
+ });
};
// 鎵撳紑寮规
const openForm = async (type, row) => {
@@ -1722,19 +1745,18 @@
const quantity = Number(p.quantity ?? 0) || 0;
const unitPrice = Number(p.unitPrice ?? 0) || 0;
const taxRate = "13"; // 榛樿 13%锛屼究浜庣洿鎺ユ彁浜わ紙濡傞渶鍙湪浜у搧涓嚜琛屼慨鏀癸級
- const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
- const taxExclusiveTotalPrice = proxy.calculateTaxExclusiveTotalPrice(
+ const taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(8);
+ const taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
taxInclusiveTotalPrice,
taxRate
);
return {
- // 鍙拌处瀛楁
productCategory: p.product || p.productName || "",
specificationModel: p.specification || "",
unit: p.unit || "",
quantity: quantity,
taxRate: taxRate,
- taxInclusiveUnitPrice: unitPrice.toFixed(2),
+ taxInclusiveUnitPrice: unitPrice.toFixed(8),
taxInclusiveTotalPrice: taxInclusiveTotalPrice,
taxExclusiveTotalPrice: taxExclusiveTotalPrice,
invoiceType: "澧炴櫘绁�",
@@ -2408,7 +2430,7 @@
const total = products.reduce((sum, product) => {
return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
}, 0);
- return total.toFixed(2);
+ return total.toFixed(8);
};
// 鐢ㄤ簬鎵撳嵃鐨勮绠楀嚱鏁�
@@ -2425,30 +2447,25 @@
const total = products.reduce((sum, product) => {
return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
}, 0);
- return total.toFixed(2);
+ return total.toFixed(8);
};
const mathNum = () => {
- console.log("productForm.value", productForm.value);
if (!productForm.value.taxInclusiveUnitPrice) {
return;
}
if (!productForm.value.quantity) {
return;
}
- // 鍚◣鎬讳环璁$畻
- productForm.value.taxInclusiveTotalPrice =
- proxy.calculateTaxIncludeTotalPrice(
- productForm.value.taxInclusiveUnitPrice,
- productForm.value.quantity
- );
+ productForm.value.taxInclusiveTotalPrice = calculateTaxIncludeTotalPrice8(
+ productForm.value.taxInclusiveUnitPrice,
+ productForm.value.quantity
+ );
if (productForm.value.taxRate) {
- // 涓嶅惈绋庢�讳环璁$畻
- productForm.value.taxExclusiveTotalPrice =
- proxy.calculateTaxExclusiveTotalPrice(
- productForm.value.taxInclusiveTotalPrice,
- productForm.value.taxRate
- );
+ productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+ productForm.value.taxInclusiveTotalPrice,
+ productForm.value.taxRate
+ );
}
};
@@ -2466,15 +2483,14 @@
isCalculating.value = true;
// 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
- productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(2);
+ productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(8);
// 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
if (productForm.value.taxRate) {
- productForm.value.taxExclusiveTotalPrice =
- proxy.calculateTaxExclusiveTotalPrice(
- totalPrice,
- productForm.value.taxRate
- );
+ productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+ totalPrice,
+ productForm.value.taxRate
+ );
}
isCalculating.value = false;
@@ -2503,12 +2519,12 @@
// 鍏堣绠楀惈绋庢�讳环 = 涓嶅惈绋庢�讳环 / (1 - 绋庣巼/100)
const taxRateDecimal = taxRate / 100;
const inclusiveTotalPrice = exclusiveTotalPrice / (1 - taxRateDecimal);
- productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(2);
+ productForm.value.taxInclusiveTotalPrice = inclusiveTotalPrice.toFixed(8);
// 璁$畻鍚◣鍗曚环 = 鍚◣鎬讳环 / 鏁伴噺
productForm.value.taxInclusiveUnitPrice = (
inclusiveTotalPrice / quantity
- ).toFixed(2);
+ ).toFixed(8);
isCalculating.value = false;
};
@@ -2531,15 +2547,14 @@
isCalculating.value = true;
// 璁$畻鍚◣鎬讳环
- productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
+ productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(8);
// 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
if (productForm.value.taxRate) {
- productForm.value.taxExclusiveTotalPrice =
- proxy.calculateTaxExclusiveTotalPrice(
- productForm.value.taxInclusiveTotalPrice,
- productForm.value.taxRate
- );
+ productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+ productForm.value.taxInclusiveTotalPrice,
+ productForm.value.taxRate
+ );
}
isCalculating.value = false;
@@ -2563,15 +2578,14 @@
isCalculating.value = true;
// 璁$畻鍚◣鎬讳环
- productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(2);
+ productForm.value.taxInclusiveTotalPrice = (unitPrice * quantity).toFixed(8);
// 濡傛灉鏈夌◣鐜囷紝璁$畻涓嶅惈绋庢�讳环
if (productForm.value.taxRate) {
- productForm.value.taxExclusiveTotalPrice =
- proxy.calculateTaxExclusiveTotalPrice(
- productForm.value.taxInclusiveTotalPrice,
- productForm.value.taxRate
- );
+ productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+ productForm.value.taxInclusiveTotalPrice,
+ productForm.value.taxRate
+ );
}
isCalculating.value = false;
@@ -2597,8 +2611,10 @@
isCalculating.value = true;
// 璁$畻涓嶅惈绋庢�讳环
- productForm.value.taxExclusiveTotalPrice =
- proxy.calculateTaxExclusiveTotalPrice(inclusiveTotalPrice, taxRate);
+ productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
+ inclusiveTotalPrice,
+ taxRate
+ );
isCalculating.value = false;
};
diff --git a/src/views/salesManagement/salesQuotation/index.vue b/src/views/salesManagement/salesQuotation/index.vue
index fce764f..226526f 100644
--- a/src/views/salesManagement/salesQuotation/index.vue
+++ b/src/views/salesManagement/salesQuotation/index.vue
@@ -215,7 +215,7 @@
<el-table-column prop="unitPrice" label="鍗曚环">
<template #default="scope">
<el-form-item :prop="`products.${scope.$index}.unitPrice`" class="product-table-form-item">
- <el-input-number v-model="scope.row.unitPrice" :min="0" :precision="2" style="width: 100%" />
+ <el-input-number v-model="scope.row.unitPrice" :min="0" :precision="8" style="width: 100%" />
</el-form-item>
</template>
</el-table-column>
--
Gitblit v1.9.3