src/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/summarizeTable.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/procurementManagement/invoiceEntry/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/procurementManagement/procurementLedger/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main.js
@@ -46,7 +46,7 @@ import PIMTable from "@/components/PIMTable/PIMTable.vue"; import { getToken } from "@/utils/auth"; import { summarizeTable } from "@/utils/summarizeTable.js"; import {calculateTaxExclusiveTotalPrice, summarizeTable} from "@/utils/summarizeTable.js"; const app = createApp(App) @@ -56,6 +56,7 @@ app.config.globalProperties.parseTime = parseTime app.config.globalProperties.resetForm = resetForm app.config.globalProperties.summarizeTable = summarizeTable app.config.globalProperties.calculateTaxExclusiveTotalPrice = calculateTaxExclusiveTotalPrice app.config.globalProperties.handleTree = handleTree app.config.globalProperties.addDateRange = addDateRange app.config.globalProperties.selectDictLabel = selectDictLabel src/utils/summarizeTable.js
@@ -34,6 +34,10 @@ } }); return sums; }; } const calculateTaxExclusiveTotalPrice = (taxInclusiveTotalPrice, taxRate) => { const taxRateDecimal = taxRate / 100; return (taxInclusiveTotalPrice / (1 + taxRateDecimal)).toFixed(2); } // 导出函数供其他文件使用 export { summarizeTable }; export { summarizeTable, calculateTaxExclusiveTotalPrice }; src/views/procurementManagement/invoiceEntry/index.vue
@@ -93,6 +93,39 @@ </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="发票号:" prop="invoiceNumber"> <el-input v-model="form.invoiceNumber" placeholder="请输入" clearable/> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="发票金额(元):" prop="invoiceAmount"> <el-input type="number" :step="0.01" v-model="form.invoiceAmount" placeholder="请输入" clearable/> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="开票人:" prop="issUer"> <el-input v-model="form.issUer" placeholder="请输入" clearable disabled/> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="开票日期:" prop="issueDate"> <el-date-picker disabled style="width: 100%" v-model="form.issueDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="date" placeholder="请选择" clearable /> </el-form-item> </el-col> </el-row> <el-row> <el-form-item label="产品信息:" prop="entryDate"> </el-form-item> @@ -110,7 +143,7 @@ <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber"/> <el-table-column label="本次来票数" prop="ticketsNum" width="170"> <template #default="scope"> <el-input-number v-model="scope.row.ticketsNum" :precision="0" :step="1" clearable style="width: 100%"/> <el-input-number v-model="scope.row.ticketsNum" :precision="0" :step="1" clearable style="width: 100%" @blur="invoiceNumBlur(scope.row)"/> </template> </el-table-column> <el-table-column label="本次来票金额(元)" prop="ticketsAmount" :formatter="formattedNumber"></el-table-column> @@ -348,6 +381,23 @@ proxy.$modal.msg("已取消") }) } //本次开票失焦操作 const invoiceNumBlur = (row) => { if(!row.ticketsNum){ row.ticketsNum = 0 } if(row.ticketsNum > row.futureTickets){ proxy.$modal.msgWarning('本次开票数不得大于未开票数') row.ticketsNum = 0 } row.futureTickets = row.futureTickets - row.ticketsNum // 计算本次开票金额 row.ticketsAmount = row.ticketsNum * row.taxInclusiveUnitPrice // 计算未开票数 row.futureTickets = row.futureTickets - row.ticketsNum // 计算未开票金额 row.futureTicketsAmount = row.futureTickets * row.taxInclusiveUnitPrice } getList() </script> src/views/procurementManagement/procurementLedger/index.vue
@@ -183,9 +183,9 @@ <el-form :model="productForm" label-width="140px" label-position="top" :rules="productRules" ref="productFormRef"> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="产品大类:" prop="productCategory"> <el-form-item label="产品大类:" prop="productId"> <el-tree-select v-model="productForm.productCategory" v-model="productForm.productId" placeholder="请选择" clearable check-strictly @change="getModels" @@ -198,8 +198,8 @@ </el-row> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="规格型号:" prop="specificationModel"> <el-select v-model="productForm.specificationModel" placeholder="请选择" clearable> <el-form-item label="规格型号:" prop="productModelId"> <el-select v-model="productForm.productModelId" placeholder="请选择" clearable @change="getProductModel"> <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id"/> </el-select> </el-form-item> @@ -236,12 +236,12 @@ <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="含税总价(元):" prop="taxInclusiveTotalPrice"> <el-input-number v-model="productForm.taxInclusiveTotalPrice" :precision="2" :step="0.1" clearable style="width: 100%"/> <el-input-number v-model="productForm.taxInclusiveTotalPrice" :precision="2" :step="0.1" clearable style="width: 100%" @change="mathNum"/> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="不含税总价(元):" prop="taxExclusiveTotalPrice"> <el-input-number v-model="productForm.taxExclusiveTotalPrice" :precision="2" :step="0.1" clearable style="width: 100%"/> <el-input v-model="productForm.taxExclusiveTotalPrice" disabled/> </el-form-item> </el-col> </el-row> @@ -337,7 +337,9 @@ const currentId = ref('') const productFormData = reactive({ productForm: { productId: '', productCategory: '', productModelId: '', specificationModel: '', unit: '', quantity: '', @@ -348,8 +350,8 @@ invoiceType: '', }, productRules: { productCategory: [{ required: true, message: "请选择", trigger: "change" }], specificationModel: [{ required: true, message: "请选择", trigger: "change" }], productId: [{ required: true, message: "请选择", trigger: "change" }], productModelId: [{ required: true, message: "请选择", trigger: "change" }], unit: [{ required: true, message: "请输入", trigger: "blur" }], quantity: [{ required: true, message: "请输入", trigger: "blur" }], taxInclusiveUnitPrice: [{ required: true, message: "请输入", trigger: "blur" }], @@ -545,10 +547,33 @@ }) } const getModels =(value) => { productForm.value.productCategory = findNodeById(productOptions.value, value) modelList({id: value}).then(res => { modelOptions.value = res }) } const getProductModel =(value) => { const index = modelOptions.value.findIndex(item => item.id === value); if (index !== -1) { productForm.value.specificationModel = modelOptions.value[index].model; } else { productForm.value.specificationModel = null; } } const findNodeById = (nodes, productId) => { for (let i = 0; i < nodes.length; i++) { if (nodes[i].value === productId) { return nodes[i].label; // 找到节点,返回该节点 } if (nodes[i].children && nodes[i].children.length > 0) { const foundNode = findNodeById(nodes[i].children, productId); if (foundNode) { return foundNode.label; // 在子节点中找到,返回该节点 } } } return null; // 没有找到节点,返回null }; function convertIdToValue(data) { return data.map(item => { const { id, children, ...rest } = item; @@ -572,6 +597,7 @@ } else { if (productOperationType.value === 'add') { productData.value.push({...productForm.value}) console.log('productData.value---', productData.value) } else { productData.value[productOperationIndex.value] = {...productForm.value} } @@ -683,6 +709,9 @@ const day = String(today.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; } const mathNum = (val) => { productForm.value.taxExclusiveTotalPrice = proxy.calculateTaxExclusiveTotalPrice(val, productForm.value.taxRate) } getList() </script>