f3c6c2d07ee8e980534c90e2a58d627900c34bbe..f6c1cedccb4e06db9a5a7e0dc381d290644a94a8
2026-05-26 yuan
1
f6c1ce 对比 | 目录
2026-05-26 yuan
Merge remote-tracking branch 'origin/dev_pro_河南鹤壁' into dev_鹤壁_强信宇_pro
7c8d2c 对比 | 目录
2026-05-26 yuan
1
3dafed 对比 | 目录
2026-05-26 yuan
1
c34569 对比 | 目录
2026-05-26 gongchunyi
chore: 清除重复的配置文件
ac74d9 对比 | 目录
2026-05-26 yuan
Merge remote-tracking branch 'origin/dev_鹤壁_强信宇_pro' into dev_鹤壁_强信宇_pro
460ed5 对比 | 目录
2026-05-26 gongchunyi
Revert "chore: 系统架构图中间图片修改"
011fb0 对比 | 目录
2026-05-26 gongchunyi
Revert "修改单价保留6位小数"
91bb42 对比 | 目录
2026-05-26 gongchunyi
fix: 质检报表小数点取消四舍五入
4fccbb 对比 | 目录
2026-05-22 yuan
Merge remote-tracking branch 'origin/dev_NEW_pro' into dev_鹤壁_强信宇_pro
fbe3c8 对比 | 目录
2026-05-21 yuan
Merge remote-tracking branch 'origin/dev_NEW_pro' into dev_鹤壁_强信宇_pro
0d2025 对比 | 目录
2026-05-21 yuan
1
dafbda 对比 | 目录
2026-05-21 yuan
Merge remote-tracking branch 'origin/dev_NEW_pro' into dev_鹤壁_强信宇_pro
9cc62e 对比 | 目录
2026-05-21 yuan
修改合同金额保留小数点后六位
ef6cbd 对比 | 目录
2026-05-18 yuan
修改logo
1774c1 对比 | 目录
2026-05-18 yuan
Merge remote-tracking branch 'origin/dev_NEW_pro' into dev_鹤壁_强信宇_pro
e5ed47 对比 | 目录
2026-05-14 yuan
移除未完成的财务管理
8b5f66 对比 | 目录
2026-05-13 yuan
Merge remote-tracking branch 'origin/dev_鹤壁_强信宇_pro' into dev_鹤壁_强信宇_pro
937c50 对比 | 目录
2026-05-11 yuan
强信宇配置图标
231ce2 对比 | 目录
2026-05-11 yuan
强信宇配置图标
9cb23c 对比 | 目录
已添加3个文件
已修改14个文件
已删除2个文件
469 ■■■■ 文件已修改
multiple/assets/logo/QXYLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/SDTXLogo.png 补丁 | 查看 | 原始文档 | blame | 历史
multiple/config.json 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
replace/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
replace/src/assets/logo/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/head.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/logo/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 240 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementLedger/detail.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementLedger/index.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/purchaseReturnOrder/New.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/reportManagement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/receiptPaymentLedger/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/returnOrder/components/formDia.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesLedger/index.vue 138 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/salesQuotation/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/systemArchitecture/index.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multiple/assets/logo/QXYLogo.png
multiple/assets/logo/SDTXLogo.png
Binary files differ
multiple/config.json
@@ -42,24 +42,6 @@
    "logo": "logo/SDTXLogo.png",
    "favicon": "favicon/SDTXfavicon.ico"
  },
  "QXY": {
    "env": {
      "VITE_APP_TITLE": "强信宇电器管理系统",
      "VITE_BASE_API": "http://36.134.154.10:9001",
      "VITE_JAVA_API": "http://36.134.154.10:9000"
    },
    "logo": "logo/QXYLogo.png",
    "favicon": "favicon/QXYfavicon.ico"
  },
  "XCDQ": {
    "env": {
      "VITE_APP_TITLE": "旭晨电器管理系统",
      "VITE_BASE_API": "http://36.133.45.183:9001",
      "VITE_JAVA_API": "http://36.133.45.183:9002"
    },
    "logo": "logo/XCDQLogo.png",
    "favicon": "favicon/XCDQfavicon.ico"
  },
  "ZQSY": {
    "env": {
      "VITE_APP_TITLE": "泽淇实业",
@@ -98,7 +80,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"
    },
public/favicon.ico

replace/public/favicon.ico
replace/src/assets/logo/logo.png
src/assets/images/head.png
Binary files differ
src/assets/logo/logo.png

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: "科目明细帐" },
      },
    ],
  },*/
];
// 动态路由,基于用户权限动态去加载
src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
@@ -75,7 +75,7 @@
                <el-descriptions-item label="报价总额"
                                      :span="2">
                  <span style="font-size: 18px; color: #e6a23c; font-weight: bold;">
                    ¥{{ Number(currentQuotation.totalAmount ?? 0).toFixed(6) }}
                    ¥{{ Number(currentQuotation.totalAmount ?? 0).toFixed(2) }}
                  </span>
                </el-descriptions-item>
              </el-descriptions>
@@ -92,7 +92,7 @@
                                   label="单位" />
                  <el-table-column prop="unitPrice"
                                   label="单价">
                    <template #default="scope">¥{{ Number(scope.row.unitPrice ?? 0).toFixed(6) }}</template>
                    <template #default="scope">¥{{ Number(scope.row.unitPrice ?? 0).toFixed(2) }}</template>
                  </el-table-column>
                </el-table>
              </div>
src/views/procurementManagement/procurementLedger/detail.vue
@@ -61,14 +61,14 @@
        <el-table-column label="数量" prop="quantity" />
        <el-table-column label="库存预留数量" prop="stockReservedQuantity" />
        <el-table-column label="税率(%)" prop="taxRate" />
        <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="unitPriceFormattedNumber" width="150" />
        <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" width="150" />
        <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" width="150" />
        <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" width="150" />
        <template #append>
          <div class="summary-row" v-if="productData.length > 0">
            <div class="summary-label">合计</div>
            <div class="summary-value" style="width: 150px">
              {{ unitPriceFormattedNumber(null, null, sumTaxInclusiveUnitPrice) }}
              {{ formattedNumber(null, null, sumTaxInclusiveUnitPrice) }}
            </div>
            <div class="summary-value" style="width: 150px">
              {{ formattedNumber(null, null, sumTaxInclusiveTotalPrice) }}
@@ -160,14 +160,6 @@
const formattedNumber = (row, column, cellValue) => {
  if (cellValue != null && !isNaN(cellValue)) {
    return Number(cellValue).toFixed(2)
  }
  return cellValue
}
const unitPriceFormattedNumber = (row, column, cellValue) => {
  if (cellValue != null && !isNaN(cellValue)) {
    return Number(cellValue).toFixed(6)
  }
  return cellValue
}
src/views/procurementManagement/procurementLedger/index.vue
@@ -68,7 +68,7 @@
              <el-table-column label="可用数量" prop="availableQuality" />
              <el-table-column label="退货数量" prop="returnQuality" />
              <el-table-column label="税率(%)" prop="taxRate" />
              <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="unitPriceFormatter" />
              <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
              <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
              <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
            </el-table>
@@ -210,7 +210,7 @@
          <el-table-column label="数量" prop="quantity" width="70" />
          <el-table-column label="库存预警数量" prop="warnNum" width="120" show-overflow-tooltip />
          <el-table-column label="税率(%)" prop="taxRate" width="80" />
          <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="unitPriceFormatter" width="150" />
          <el-table-column label="含税单价(元)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" width="150" />
          <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" width="150" />
          <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" width="150" />
          <el-table-column label="是否质检" prop="isChecked" width="150">
@@ -310,7 +310,7 @@
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="含税单价(元):" prop="taxInclusiveUnitPrice">
              <el-input-number v-model="productForm.taxInclusiveUnitPrice" :precision="6" :step="0.1" :min="0" clearable
              <el-input-number v-model="productForm.taxInclusiveUnitPrice" :precision="2" :step="0.1" :min="0" clearable
                style="width: 100%" @change="mathNum" />
            </el-form-item>
          </el-col>
@@ -772,9 +772,6 @@
const formattedNumber = (row, column, cellValue) => {
  return parseFloat(cellValue).toFixed(2);
};
const unitPriceFormatter = (row, column, cellValue) => {
  return parseFloat(cellValue).toFixed(6);
};
// 查询列表
/** 搜索按钮操作 */
@@ -1479,7 +1476,7 @@
      productForm.value.taxInclusiveUnitPrice = (
        Number(productForm.value.taxInclusiveTotalPrice) /
        Number(productForm.value.quantity)
      ).toFixed(6);
      ).toFixed(2);
      // 确保结果不为负数
      if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
        productForm.value.taxInclusiveUnitPrice = "0";
@@ -1520,7 +1517,7 @@
      productForm.value.taxInclusiveUnitPrice = (
        Number(productForm.value.taxInclusiveTotalPrice) /
        Number(productForm.value.quantity)
      ).toFixed(6);
      ).toFixed(2);
      // 确保结果不为负数
      if (Number(productForm.value.taxInclusiveUnitPrice) < 0) {
        productForm.value.taxInclusiveUnitPrice = "0";
src/views/procurementManagement/purchaseReturnOrder/New.vue
@@ -511,7 +511,7 @@
});
const formattedNumber = (row, column, cellValue) => {
  return parseFloat(cellValue).toFixed(6);
  return parseFloat(cellValue).toFixed(2);
};
const formatAmount = (value) => {
src/views/reportAnalysis/reportManagement/index.vue
@@ -315,7 +315,7 @@
  const stat = passRateStatisticsData.value.find(item => item.modelType === type);
  if (stat) {
    if (field === 'completionRate' || field === 'passRate') {
      return stat[field] ? Number(stat[field]).toFixed(0) + '%' : '0%';
      return stat[field] ? parseFloat(stat[field]) + '%' : '0%';
    }
    return stat[field];
  }
src/views/salesManagement/receiptPaymentLedger/index.vue
@@ -126,6 +126,7 @@
    customewTransactionsDetails,
  } from "@/api/salesManagement/indicatorStats.js";
  import Pagination from "../../../components/PIMTable/Pagination.vue";
  import {summarizeTable} from "@/utils/summarizeTable.js";
  const { proxy } = getCurrentInstance();
  const tableData = ref([]);
  const receiptRecord = ref([]);
@@ -174,7 +175,7 @@
    });
  };
  const formattedNumber = (row, column, cellValue) => {
    return cellValue ? parseFloat(cellValue).toFixed(2) : "0.00";
    return parseFloat(cellValue).toFixed(8);
  };
  // 主表合计方法
  const summarizeMainTable = param => {
@@ -197,6 +198,14 @@
        futureTickets: { noDecimal: true }, // 不保留小数
      }
    );
    if (receiptRecord.value?.length > 0) {
      const index = tableData.value.findIndex(
          (item) => item.id == customerId.value
      );
      summarizeTable[summarizeTable.length - 1] = tableData.value[index].unReceiptPaymentAmount.toFixed(8);
    } else {
      summarizeTable[summarizeTable.length - 1] = 0.0;
    }
    return summarizeTable;
  };
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([]);
src/views/salesManagement/salesLedger/index.vue
@@ -161,7 +161,7 @@
                               prop="taxRate" />
              <el-table-column label="含税单价(元)"
                               prop="taxInclusiveUnitPrice"
                               :formatter="sensitiveUnitPriceFormatter" />
                               :formatter="sensitiveAmountFormatter" />
              <el-table-column label="含税总价(元)"
                               prop="taxInclusiveTotalPrice"
                               :formatter="sensitiveAmountFormatter" />
@@ -329,7 +329,7 @@
                           :label="item.customerName"
                           :value="item.id">
                  {{
                    item.customerName + "——" + item.taxpayerIdentificationNumber
                    item.customerName
                  }}
                </el-option>
              </el-select>
@@ -455,14 +455,14 @@
          <el-table-column label="税率(%)"
                           prop="taxRate" />
          <el-table-column label="含税单价(元)"
                            prop="taxInclusiveUnitPrice"
                            :formatter="unitPriceFormatter" />
                           prop="taxInclusiveUnitPrice"
                           :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="6"
                               :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,17 +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);
  };
  const unitPriceFormatter = (row, column, cellValue) => {
    if (cellValue === undefined || cellValue === null || cellValue === "") {
      return "0.000000";
    }
    return parseFloat(cellValue).toFixed(6);
    return parseFloat(cellValue).toFixed(8);
  };
  const findLedgerRecordByRow = row => {
    if (!row) return null;
@@ -1459,13 +1469,7 @@
    if (!isCurrentUserMaintainer(row)) {
      return "*****";
    }
    return formattedNumber(row, column, cellValue);
  };
  const sensitiveUnitPriceFormatter = (row, column, cellValue) => {
    if (!isCurrentUserMaintainer(row)) {
      return "*****";
    }
    return unitPriceFormatter(row, column, cellValue);
    return format8(row, column, cellValue);
  };
  // 获取tree子数据
  const getModels = value => {
@@ -1580,7 +1584,10 @@
      "contractAmount",
      "taxInclusiveTotalPrice",
      "taxExclusiveTotalPrice",
    ]);
    ], {
      taxInclusiveTotalPrice: { decimalPlaces: 8 },
      taxExclusiveTotalPrice: { decimalPlaces: 8 },
    });
  };
  // 子表合计方法
  const summarizeChildrenTable = (param, parentRow) => {
@@ -1606,7 +1613,11 @@
      "taxInclusiveUnitPrice",
      "taxInclusiveTotalPrice",
      "taxExclusiveTotalPrice",
    ]);
    ], {
      taxInclusiveUnitPrice: { decimalPlaces: 8 },
      taxInclusiveTotalPrice: { decimalPlaces: 8 },
      taxExclusiveTotalPrice: { decimalPlaces: 8 },
    });
  };
  // 打开弹框
  const openForm = async (type, row) => {
@@ -1734,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(6),
        taxInclusiveUnitPrice: unitPrice.toFixed(8),
        taxInclusiveTotalPrice: taxInclusiveTotalPrice,
        taxExclusiveTotalPrice: taxExclusiveTotalPrice,
        invoiceType: "增普票",
@@ -2420,7 +2430,7 @@
    const total = products.reduce((sum, product) => {
      return sum + (parseFloat(product.taxInclusiveTotalPrice) || 0);
    }, 0);
    return total.toFixed(2);
    return total.toFixed(8);
  };
  // 用于打印的计算函数
@@ -2437,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
      );
    }
  };
@@ -2478,15 +2483,14 @@
    isCalculating.value = true;
    // 计算含税单价 = 含税总价 / 数量
    productForm.value.taxInclusiveUnitPrice = (totalPrice / quantity).toFixed(6);
    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;
@@ -2515,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(6);
    ).toFixed(8);
    isCalculating.value = false;
  };
@@ -2543,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;
@@ -2575,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;
@@ -2609,8 +2611,10 @@
    isCalculating.value = true;
    // 计算不含税总价
    productForm.value.taxExclusiveTotalPrice =
      proxy.calculateTaxExclusiveTotalPrice(inclusiveTotalPrice, taxRate);
    productForm.value.taxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice8(
      inclusiveTotalPrice,
      taxRate
    );
    isCalculating.value = false;
  };
src/views/salesManagement/salesQuotation/index.vue
@@ -65,7 +65,7 @@
        </el-table-column>
        <el-table-column prop="totalAmount" label="报价金额" width="120">
          <template #default="scope">
            ¥{{ scope.row.totalAmount.toFixed(6) }}
            ¥{{ scope.row.totalAmount.toFixed(2) }}
          </template>
        </el-table-column>
        <el-table-column label="操作" width="200" fixed="right" align="center">
@@ -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="6" 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>
@@ -267,7 +267,7 @@
<!--          <el-tag :type="getStatusType(currentQuotation.status)">{{ currentQuotation.status }}</el-tag>-->
<!--        </el-descriptions-item>-->
        <el-descriptions-item label="报价总额" :span="2">
          <span style="font-size: 18px; color: #e6a23c; font-weight: bold;">¥{{ currentQuotation.totalAmount?.toFixed(6) }}</span>
          <span style="font-size: 18px; color: #e6a23c; font-weight: bold;">¥{{ currentQuotation.totalAmount?.toFixed(2) }}</span>
        </el-descriptions-item>
      </el-descriptions>
@@ -279,7 +279,7 @@
          <el-table-column prop="unit" label="单位" />
          <el-table-column prop="unitPrice" label="单价">
            <template #default="scope">
              ¥{{ scope.row.unitPrice.toFixed(6) }}
              ¥{{ scope.row.unitPrice.toFixed(2) }}
            </template>
          </el-table-column>
        </el-table>
@@ -536,7 +536,6 @@
}
const handleEdit = async (row) => {
  console.log("1111111111111111111", row)
  dialogTitle.value = '编辑报价'
  isEdit.value = true
  editId.value = row.id
src/views/systemArchitecture/index.vue
@@ -179,7 +179,7 @@
<script setup>
import { useRouter } from 'vue-router'
import aiHead from '@/assets/images/head.png'
import aiHead from '@/assets/images/head.svg'
const router = useRouter()
@@ -570,23 +570,23 @@
}
.ai-stage__ring {
  width: 380px;
  height: 380px;
  width: 300px;
  height: 300px;
  display: grid;
  place-items: center;
  position: relative;
}
.ai-stage__core {
  width: 380px;
  height: 380px;
  width: 340px;
  height: 340px;
  display: grid;
  place-items: center;
}
.ai-stage__core img {
  width: 380px;
  height: 380px;
  width: 360px;
  height: 360px;
  object-fit: contain;
  transform: translateY(-24px);
  filter: drop-shadow(0 10px 24px rgba(76, 135, 255, 0.22));