| src/views/basicData/product/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/dispatchLog/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/issueManagement/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/receiptManagement/components/formDia.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/receiptManagement/components/formDiaManual.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/receiptManagement/components/formDiaProduct.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/receiptManagement/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/stockManagement/components/FormDiaManual.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/inventoryManagement/stockManagement/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/salesManagement/salesLedger/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/basicData/product/index.vue
@@ -76,7 +76,7 @@ <div class="right"> <div style="margin-bottom: 10px" v-if="isShowButton"> <el-button type="primary" @click="openModelDia('add')"> 新增规格型号 新增产品高度 </el-button> <ImportExcel @uploadSuccess="getModelList" /> <el-button @@ -129,7 +129,7 @@ </el-dialog> <el-dialog v-model="modelDia" title="规格型号" title="产品高度" width="400px" @close="closeModelDia" @keydown.enter.prevent @@ -143,10 +143,10 @@ > <el-row> <el-col :span="24"> <el-form-item label="规格型号:" prop="model"> <el-form-item label="产品高度:" prop="model"> <el-input v-model="modelForm.model" placeholder="请输入规格型号" placeholder="请输入产品高度" clearable @keydown.enter.prevent /> @@ -155,10 +155,10 @@ </el-row> <el-row> <el-col :span="24"> <el-form-item label="单位:" prop="unit"> <el-form-item label="高度单位:" prop="unit"> <el-input v-model="modelForm.unit" placeholder="请输入单位" placeholder="请输入高度单位" clearable @keydown.enter.prevent /> @@ -205,11 +205,11 @@ const expandedKeys = ref([]); const tableColumn = ref([ { label: "规格型号", label: "产品高度", prop: "model", }, { label: "单位", label: "高度单位", prop: "unit", }, { @@ -281,7 +281,7 @@ form.value.productName = data.productName; } }; // 打开规格型号弹框 // 打开产品高度弹框 const openModelDia = (type, data) => { modelOperationType.value = type; modelDia.value = true; src/views/inventoryManagement/dispatchLog/index.vue
@@ -117,8 +117,8 @@ <el-table-column label="出库数量/件" prop="inboundNum" show-overflow-tooltip /> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="单价(元)/支" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/支" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> <el-table-column label="出库人" prop="createBy" show-overflow-tooltip /> </el-table> <pagination @@ -180,19 +180,19 @@ <img class="barcode-img" :src="javaApiUrl+scope.row.url"></img> </template> </el-table-column> <el-table-column label="出库日期" prop="createTime" show-overflow-tooltip /> <el-table-column label="出库日期" prop="createTime" width="150" show-overflow-tooltip /> <el-table-column label="产品名称" prop="productCategory" show-overflow-tooltip /> <el-table-column label="产品高度" prop="specificationModel" width="100" show-overflow-tooltip> <template #default="scope"> <div>{{ scope.row.specificationModel }}{{ scope.row.unit }}</div> </template> </el-table-column> <el-table-column label="出库数量/件" prop="inboundNum" show-overflow-tooltip /> <el-table-column label="出库数量/件" prop="inboundNum" width="150" show-overflow-tooltip /> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="单价(元)/支" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> <el-table-column label="出库人" prop="createBy" show-overflow-tooltip /> <el-table-column label="出库人" prop="createBy" width="150" show-overflow-tooltip /> </el-table> <pagination v-show="total > 0" @@ -229,7 +229,7 @@ <div v-for="(item, index) in printData" :key="index" class="print-page"> <div class="delivery-note"> <div class="header"> <div class="company-name">鼎诚瑞实业有限责任公司</div> <div class="company-name">天津双奇点有限责任公司</div> <div class="document-title">零售发货单</div> </div> @@ -256,32 +256,34 @@ <thead> <tr> <th>产品名称</th> <th>规格型号</th> <th>单位</th> <th>单价</th> <th>零售数量</th> <th>零售金额</th> <th>产品高度</th> <th>单价(元)/件</th> <th>单价(美元)/件</th> <th>零售数量/件</th> <th>每件数量/支</th> <th>纸箱规格</th> </tr> </thead> <tbody> <tr> <td>{{ item.productCategory || '砂灰砖' }}</td> <td>{{ item.specificationModel || '标准' }}</td> <td>{{ item.unit || '块' }}</td> <td>{{ item.productCategory || '' }}</td> <td>{{ item.specificationModel || '' }}{{ item.unit || '' }}</td> <td>{{ item.taxInclusiveUnitPrice || '0' }}</td> <td>{{ item.inboundNum || '2000' }}</td> <td>{{ item.taxInclusiveTotalPrice || '0' }}</td> <td>{{ item.dollarPrice || '0' }}</td> <td>{{ item.inboundNum || '0' }}</td> <td>{{ item.boxNum || '0' }}</td> <td>{{ item.cartonSpecifications || '0' }}</td> </tr> </tbody> <tfoot> <tr> <!-- <tr> <td class="label">合计</td> <td class="total-value"></td> <td class="total-value"></td> <td class="total-value"></td> <td class="total-value">{{ item.inboundNum || '2000' }}</td> <td class="total-value">{{ item.taxInclusiveTotalPrice || '0' }}</td> </tr> </tr> --> </tfoot> </table> </div> @@ -335,6 +337,7 @@ getStockInPageByProduct, getStockInPageByCustom, } from "@/api/inventoryManagement/stockIn.js"; const javaApiUrl = __BASE_API__; const userStore = useUserStore(); const { proxy } = getCurrentInstance(); @@ -694,39 +697,33 @@ </div> <div class="table-section"> <table class="product-table"> <thead> <tr> <th>产品名称</th> <th>规格型号</th> <th>单位</th> <th>单价</th> <th>零售数量</th> <th>零售金额</th> </tr> </thead> <tbody> <tr> <td>${item.productCategory || '砂灰砖'}</td> <td>${item.specificationModel || '标准'}</td> <td>${item.unit || '块'}</td> <td>${item.taxInclusiveUnitPrice || '0'}</td> <td>${item.inboundNum || '2000'}</td> <td>${item.taxInclusiveTotalPrice || '0'}</td> </tr> </tbody> <tfoot> <tr> <td class="label">合计</td> <td class="total-value"></td> <td class="total-value"></td> <td class="total-value"></td> <td class="total-value">${item.inboundNum || '2000'}</td> <td class="total-value">${item.taxInclusiveTotalPrice || '0'}</td> </tr> </tfoot> </table> </div> <table class="product-table"> <thead> <tr> <th>产品名称</th> <th>产品高度</th> <th>单价(元)/件</th> <th>单价(美元)/件</th> <th>零售数量/件</th> <th>每件数量/支</th> <th>纸箱规格</th> </tr> </thead> <tbody> <tr> <td>{{ item.productCategory || '' }}</td> <td>{{ item.specificationModel || '' }}{{ item.unit || '' }}</td> <td>{{ item.taxInclusiveUnitPrice || '0' }}</td> <td>{{ item.dollarPrice || '0' }}</td> <td>{{ item.inboundNum || '0' }}</td> <td>{{ item.boxNum || '0' }}</td> <td>{{ item.cartonSpecifications || '0' }}</td> </tr> </tbody> <tfoot> </tfoot> </table> </div> <div class="footer-section"> <div class="footer-row"> src/views/inventoryManagement/issueManagement/index.vue
@@ -81,7 +81,7 @@ :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> <el-table-column align="center" type="selection" width="55" /> <el-table-column align="center" label="序号" type="index" width="60" /> <el-table-column label="入库时间" prop="inboundDate" width="100" show-overflow-tooltip /> <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip /> <el-table-column label="产品名称" prop="productCategory" show-overflow-tooltip /> <el-table-column label="产品高度" prop="specificationModel" width="100" show-overflow-tooltip> <template #default="scope"> @@ -91,7 +91,8 @@ <el-table-column label="入库数量/件" prop="inboundNum" width="100" show-overflow-tooltip /> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="剩余库存" prop="inboundNum0" width="90" show-overflow-tooltip /> <el-table-column label="单价(元)" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> <el-table-column fixed="right" label="操作" min-width="60" align="center"> @@ -155,9 +156,10 @@ <el-table-column label="入库数量/件" prop="inboundNum" width="100" show-overflow-tooltip /> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="剩余库存" prop="inboundNum0" width="90" show-overflow-tooltip /> <el-table-column label="单价(元)" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> <el-table-column label="入库人" prop="createBy" width="150" show-overflow-tooltip /> <el-table-column fixed="right" label="操作" width="100" align="center"> <template #default="scope"> <el-button link type="primary" size="small" @click="openForm(scope.row);">领用</el-button> @@ -173,7 +175,7 @@ <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> <div>可出库数量:{{currentRowNum}}</div> <el-form-item label="出库数量:" prop="salesContractNo"> <el-input-number :step="1" :min="0" style="width: 100%" v-model="form.inboundQuantity" placeholder="请输入" clearable /> <el-input-number :step="1" :min="0" :max="currentRowNum" style="width: 100%" v-model="form.inboundQuantity" placeholder="请输入" clearable /> </el-form-item> <el-form-item label="出库日期:" prop="projectName"> <el-date-picker style="width: 100%" v-model="form.inboundTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD" @@ -213,6 +215,7 @@ delStockManage, stockOut, } from "@/api/inventoryManagement/stockManage.js"; const javaApiUrl = __BASE_API__; const userStore = useUserStore() const { proxy } = getCurrentInstance() @@ -234,7 +237,7 @@ searchForm: { supplierName: '', customerName: '', inboundQuantity:'', inboundQuantity:0, inboundTime:'', nickName: '', userId: '', @@ -342,7 +345,7 @@ // 初始化表单数据 form.value = { productrecordId: '', inboundQuantity: '', // 出库数量清空 inboundQuantity: 0, // 出库数量清空 inboundTime: getCurrentDate(), // 默认当前日期 nickName: '', // 默认当前用户 } @@ -360,7 +363,13 @@ const submitForm = () => { let num = Number(form.value.inboundQuantity) if(num <= 0 || num > currentRowNum.value){ return proxy.$modal.msgWarning("请填入有效数字") return proxy.$modal.msgWarning("请填写出库数量") } if(!form.value.nickName){ return proxy.$modal.msgWarning("请选择出库人") } if(!form.value.inboundTime){ return proxy.$modal.msgWarning("请选择出库时间") } proxy.$refs["formRef"].validate(valid => { if (valid && currentRowId.value) { src/views/inventoryManagement/receiptManagement/components/formDia.vue
@@ -34,21 +34,40 @@ type="index" width="60" /> <el-table-column label="产品大类" prop="productCategory" /> <el-table-column label="规格型号" prop="specificationModel" /> <el-table-column label="单位" prop="unit" width="70" /> <el-table-column label="产品" prop="productCategory" /> <el-table-column label="产品高度" prop="specificationModel" > <template #default="scope"> <div>{{ scope.row.specificationModel }}{{ scope.row.unit }}</div> </template> </el-table-column> <!-- <el-table-column label="高度单位" prop="unit" width="70" /> --> <!-- <el-table-column label="供应商" prop="supplierName" width="100" /> --> <el-table-column label="采购数量" prop="quantity" width="100" /> <el-table-column label="待入库数量" prop="quantity0" width="100" /> <el-table-column label="本次入库数量" prop="quantityStock" width="150"> <el-table-column label="采购数量/件" prop="quantity" width="100" /> <el-table-column label="每件数量/支" prop="boxNum" width="150"> <template #default="scope"> <el-input-number :step="1" :min="0" style="width: 100%" v-model="scope.row.boxNum"/> </template> </el-table-column> <el-table-column label="待入库数量/件" prop="quantity0" width="150" /> <el-table-column label="本次入库数量/件" prop="quantityStock" width="150"> <template #default="scope"> <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.quantityStock" @change="() => calculateTotalPrice(scope.row)" /> </template> </el-table-column> <el-table-column label="税率(%)" prop="taxRate" width="120" /> <el-table-column label="单价(元)" prop="taxInclusiveUnitPrice" width="150"> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"> <template #default="scope"> <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.taxInclusiveUnitPrice" @change="() => calculateTotalPrice(scope.row)" :disabled="operationType === 'edit'"/> </template> </el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"> <template #default="scope"> <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.dollarPrice" :disabled="operationType === 'edit'"/> </template> </el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"> <template #default="scope"> <el-input v-model="scope.row.cartonSpecifications" placeholder="请输入纸箱规格" style="width: 100%" /> </template> </el-table-column> <el-table-column @@ -224,6 +243,9 @@ taxInclusiveUnitPrice: Number(item?.taxInclusiveUnitPrice ?? 0), taxInclusiveTotalPrice: 0, originalQuantityStock: Number(item.quantityStock ?? item.inboundQuantity ?? 0), boxNum: item.boxNum || 0, dollarPrice: item.dollarPrice || 0, })) } catch (error) { console.error('查询产品记录失败:', error) @@ -282,6 +304,27 @@ proxy.$modal.msgError('本次入库数量需大于0,且不能超过待入库数量') return } let isVerify = true selectedRows.value.some((product) => { if(!product.boxNum){ proxy.$modal.msgError('请填写每件数量/支') isVerify = false return true } if(!product.cartonSpecifications){ proxy.$modal.msgError('请填写纸箱规格') isVerify = false return true } if(!product.dollarPrice){ proxy.$modal.msgError('请填写单价(美元)/件') isVerify = false return true } return false }) if(!isVerify)return const stockInData = { ...form.value, @@ -291,7 +334,11 @@ id: product.id, inboundQuantity: Number(product.quantityStock), unitPrice: Number(product.taxInclusiveUnitPrice), taxInclusiveTotalPrice: Number(product.taxInclusiveTotalPrice) taxInclusiveTotalPrice: Number(product.taxInclusiveTotalPrice), boxNum: Number(product.boxNum), cartonSpecifications: product.cartonSpecifications, dollarPrice: Number(product.dollarPrice) })), }; loading.value = true src/views/inventoryManagement/receiptManagement/components/formDiaManual.vue
@@ -29,7 +29,7 @@ accept="image/*" :data="{ type: 9 }" > <img v-if="scope.row.url" :src="javaApiUrl+scope.row.url"></img> <img class="upload-img" v-if="scope.row.url" :src="javaApiUrl+scope.row.url"></img> <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon> </el-upload> </template> @@ -51,7 +51,7 @@ </el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="200"> <template #default="scope"> <el-input v-model="scope.row.cartonSpecifications" placeholder="请输入产品高度" /> <el-input v-model="scope.row.cartonSpecifications" placeholder="请输入纸箱规格" /> </template> </el-table-column> <!-- <el-table-column label="供应商" prop="supplierName" width="200"> @@ -81,9 +81,14 @@ <el-input-number :step="1" :min="0" style="width: 100%" v-model="scope.row.boxNum" @change="() => calculateTotalPrice(scope.row)" /> </template> </el-table-column> <el-table-column label="单价(元)/支" prop="taxInclusiveUnitPrice" width="150"> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"> <template #default="scope"> <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.taxInclusiveUnitPrice" @change="() => calculateTotalPrice(scope.row)" /> </template> </el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"> <template #default="scope"> <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.dollarPrice"/> </template> </el-table-column> <el-table-column label="入库日期" prop="inboundDate" width="180"> @@ -219,7 +224,8 @@ taxInclusiveTotalPrice: 0, taxRate: null, taxExclusiveTotalPrice: 0, boxNum: 0 boxNum: 0, dollarPrice: 0 }); }; @@ -257,17 +263,21 @@ for (let i = 0; i < productList.value.length; i++) { const product = productList.value[i]; if (!product.productCategory || !product.specificationModel || !product.unit) { proxy.$modal.msgError(`第${i + 1}行产品数据未填写完整(产品大类、规格型号、单位为必填)`) proxy.$modal.msgError(`第${i + 1}行产品数据未填写完整(产品、产品高度、高度单位为必填)`) return } if (!product.url) { proxy.$modal.msgError(`第${i + 1}行产品未上传产品图片`) return } if (!product.cartonSpecifications) { proxy.$modal.msgError(`第${i + 1}行产品未填写纸箱规格`) return } // if (!product.itemType) { // proxy.$modal.msgError(`第${i + 1}行请选择物品类型`) // return // } if (!product.inboundDate) { proxy.$modal.msgError(`第${i + 1}行请选择入库日期`) return } const stock = Number(product?.inboundNum ?? 0); if (!Number.isFinite(stock) || stock <= 0) { proxy.$modal.msgError(`第${i + 1}行本次入库数量需大于0`) @@ -275,7 +285,21 @@ } const boxNum = Number(product?.boxNum ?? 0); if (!Number.isFinite(boxNum) || boxNum <= 0) { proxy.$modal.msgError(`第${i + 1}每盒数量需大于0`) proxy.$modal.msgError(`第${i + 1}行每件数量/支需大于0`) return } const taxInclusiveUnitPrice = Number(product?.taxInclusiveUnitPrice ?? 0); if (!Number.isFinite(taxInclusiveUnitPrice) || taxInclusiveUnitPrice <= 0) { proxy.$modal.msgError(`第${i + 1}行单价(元)需大于0`) return } const dollarPrice = Number(product?.dollarPrice ?? 0); if (!Number.isFinite(dollarPrice) || dollarPrice <= 0) { proxy.$modal.msgError(`第${i + 1}行单价(美元)需大于0`) return } if (!product.inboundDate) { proxy.$modal.msgError(`第${i + 1}行请选择入库日期`) return } @@ -296,7 +320,8 @@ taxInclusiveTotalPrice: Number(product.taxInclusiveTotalPrice || 0), boxNum:Number(product.boxNum), cartonSpecifications: product.cartonSpecifications, url: product.url||'/src/assets/logo/logo.png', url: product.url||'', dollarPrice: Number(product.dollarPrice || 0), })); loading.value = true if (operationType.value === 'edit') { @@ -391,6 +416,10 @@ taxInclusiveUnitPrice: Number(row?.taxInclusiveUnitPrice ?? 0), taxInclusiveTotalPrice: Number(row?.taxInclusiveTotalPrice ?? 0), taxExclusiveTotalPrice: Number(row?.taxExclusiveTotalPrice ?? 0), boxNum: Number(row?.boxNum ?? 0), cartonSpecifications: row?.cartonSpecifications ?? '', url: row?.url ?? '', dollarPrice: Number(row?.dollarPrice ?? 0), }] } } @@ -400,5 +429,11 @@ }) </script> <style scoped lang="scss"></style> <style scoped lang="scss"> .upload-img{ width: 80px; height: 80px; object-fit: contain; } </style> src/views/inventoryManagement/receiptManagement/components/formDiaProduct.vue
@@ -289,6 +289,7 @@ taxRate: Number(row?.taxRate ?? 0), unitPrice: Number(row?.unitPrice ?? 0), taxExclusiveTotalPrice: Number(row?.taxExclusiveTotalPrice ?? 0), dollarPrice: Number(row?.dollarPrice ?? 0), }] } } src/views/inventoryManagement/receiptManagement/index.vue
@@ -88,7 +88,7 @@ :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> <el-table-column align="center" type="selection" width="55" /> <el-table-column align="center" label="序号" type="index" width="60" /> <el-table-column label="入库时间" prop="inboundDate" width="100" show-overflow-tooltip /> <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip /> <el-table-column label="产品名称" prop="productCategory" show-overflow-tooltip /> <el-table-column label="产品高度" prop="specificationModel" width="100" show-overflow-tooltip> <template #default="scope"> @@ -97,14 +97,15 @@ </el-table-column> <el-table-column label="入库数量/件" prop="inboundNum" width="100" show-overflow-tooltip /> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="单价(元)" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> <el-table-column fixed="right" label="操作" min-width="60" align="center"> <template #default="scope"> <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'purchase');">编辑</el-button> <el-button link type="success" size="small" @click="showQRCode(scope.row)">生成条形码</el-button> <el-button link type="success" size="small" @click="showERCode(scope.row)">生成二维码</el-button> <el-button link type="success" size="small" @click="showQRCode(scope.row,1)">生成条形码</el-button> <el-button link type="success" size="small" @click="showERCode(scope.row,1)">生成二维码</el-button> </template> </el-table-column> </el-table> @@ -161,9 +162,10 @@ </el-table-column> <el-table-column label="入库数量/件" prop="inboundNum" width="100" show-overflow-tooltip /> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="单价(元)" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> <el-table-column label="入库人" prop="createBy" width="150" show-overflow-tooltip /> <el-table-column fixed="right" label="操作" width="100" align="center"> <template #default="scope"> <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'manual');">编辑</el-button> @@ -211,7 +213,7 @@ </el-dialog> <el-dialog v-model="barcodeDia" title="产品信息" width="40%" @close="closeBarcodeDia"> <div> <el-row :gutter="30"> <el-row v-if="barcodeDetail.url" :gutter="30"> <el-col :span="12"> <div class="barcode-item"> <div class="barcode-label">图片</div> @@ -228,22 +230,23 @@ </el-col> <el-col :span="12"> <div class="barcode-item"> <div class="barcode-label">单价</div> <div class="barcode-value">{{barcodeDetail.taxInclusiveUnitPrice}}元/支</div> <div class="barcode-label">产品高度</div> <div class="barcode-value">{{barcodeDetail.specificationModel}}{{barcodeDetail.unit}}</div> </div> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <div class="barcode-item"> <div class="barcode-label">入库人</div> <div class="barcode-value">{{barcodeDetail.createBy}}</div> <div class="barcode-label">单价</div> <div class="barcode-value">{{barcodeDetail.taxInclusiveUnitPrice}}元/件</div> </div> </el-col> <el-col :span="12"> <div class="barcode-item"> <div class="barcode-label">产品高度</div> <div class="barcode-value">{{barcodeDetail.specificationModel}}{{barcodeDetail.unit}}</div> <div class="barcode-label">单价</div> <div class="barcode-value">{{barcodeDetail.dollarPrice}}美元/件</div> </div> </el-col> </el-row> @@ -257,7 +260,7 @@ <el-col :span="12"> <div class="barcode-item"> <div class="barcode-label">每件数量/支</div> <div class="barcode-value">{{barcodeDetail.specificationModel}}</div> <div class="barcode-value">{{barcodeDetail.boxNum}}</div> </div> </el-col> </el-row> @@ -266,6 +269,12 @@ <div class="barcode-item"> <div class="barcode-label">纸箱规格</div> <div class="barcode-value">{{barcodeDetail.cartonSpecifications}}</div> </div> </el-col> <el-col :span="12"> <div class="barcode-item"> <div class="barcode-label">入库人</div> <div class="barcode-value">{{barcodeDetail.createBy}}</div> </div> </el-col> </el-row> @@ -595,6 +604,7 @@ } } const getDetail = (barcode)=>{ console.log('barcode',barcode) if(barcode.indexOf(",")==-1){ proxy.$modal.msgWarning("请扫描正确的条形码") return src/views/inventoryManagement/stockManagement/components/FormDiaManual.vue
@@ -35,8 +35,9 @@ </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="库存数量/件:" prop="inboundNum"> <el-input v-model="form.inboundNum" placeholder="请输入" clearable @input="calculateTotalPrice" /> <el-form-item label="入库数量/件:" prop="inboundNum"> <el-input-number :step="1" v-model="form.inboundNum" :min="form.totalInboundNum" style="width: 100%" placeholder="请输入" clearable/> </el-form-item> </el-col> </el-row> src/views/inventoryManagement/stockManagement/index.vue
@@ -87,7 +87,7 @@ :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> <el-table-column align="center" type="selection" width="55" /> <el-table-column align="center" label="序号" type="index" width="60" /> <el-table-column label="入库时间" prop="inboundDate" width="100" show-overflow-tooltip /> <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip /> <el-table-column label="产品名称" prop="productCategory" show-overflow-tooltip /> <el-table-column label="产品高度" prop="specificationModel" width="100" show-overflow-tooltip> <template #default="scope"> @@ -96,6 +96,8 @@ </el-table-column> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="入库数量" prop="inboundNum" width="100" show-overflow-tooltip /> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="已出库数量" prop="totalInboundNum" width="100" show-overflow-tooltip /> <el-table-column label="剩余库存" prop="inboundNum0" width="100" show-overflow-tooltip /> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> @@ -154,16 +156,18 @@ <div>{{ scope.row.specificationModel }}{{ scope.row.unit }}</div> </template> </el-table-column> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" width="150"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice" width="150"></el-table-column> <el-table-column label="每件数量/支" prop="boxNum" width="100" show-overflow-tooltip /> <el-table-column label="入库数量" prop="inboundNum" width="100" show-overflow-tooltip /> <el-table-column label="已出库数量" prop="totalInboundNum" width="100" show-overflow-tooltip /> <el-table-column label="剩余库存" prop="inboundNum0" width="100" show-overflow-tooltip /> <el-table-column label="纸箱规格" prop="cartonSpecifications" width="150"></el-table-column> <el-table-column fixed="right" label="操作" width="100" align="center"> <!-- <el-table-column fixed="right" label="操作" width="100" align="center"> <template #default="scope"> <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">编辑</el-button> </template> </el-table-column> </el-table-column> --> </el-table> <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper" :page="page.current" :limit="page.size" @pagination="paginationChange" /> @@ -261,6 +265,7 @@ import { updateManagement, updateManagementByCustom, updateStockIn } from "@/api/inventoryManagement/stockIn.js"; const javaApiUrl = __BASE_API__; // 导入三个独立的弹框组件 import FormDiaProduction from './components/FormDiaProduction.vue' @@ -505,7 +510,7 @@ delete submitData.taxExclusiveTotalPrice console.log('提交给后端的数据(已移除总价字段):', submitData) submitData.inboundNum = parseFloat(submitData.inboundNum)||0 // 根据当前标签页调用不同的提交接口 let apiCall if (activeTab.value === 'production') { src/views/salesManagement/salesLedger/index.vue
@@ -47,12 +47,19 @@ <template #default="props"> <el-table :data="props.row.children" border show-summary :summary-method="summarizeChildrenTable"> <el-table-column align="center" label="序号" type="index" width="60" /> <el-table-column label="产品大类" prop="productCategory" /> <el-table-column label="规格型号" prop="specificationModel" /> <el-table-column label="单位" prop="unit" /> <el-table-column label="数量" prop="quantity" /> <el-table-column label="产品名称" prop="productCategory"/> <el-table-column label="产品高度" prop="specificationModel" width="100"> <template #default="scope"> <div>{{ scope.row.specificationModel }}{{ scope.row.unit }}</div> </template> </el-table-column> <el-table-column label="数量/件" prop="quantity"/> <el-table-column label="每件数量/支" prop="boxNum" width="100"/> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" :formatter="formattedNumber"></el-table-column> <el-table-column label="单价(美元)/件" prop="dollarPrice"></el-table-column> <el-table-column label="纸箱规格" prop="cartonSpecifications"></el-table-column> <el-table-column label="税率(%)" prop="taxRate" /> <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> @@ -163,14 +170,21 @@ :summary-method="summarizeMainTable"> <el-table-column align="center" type="selection" width="55" v-if="operationType !== 'view'" /> <el-table-column align="center" label="序号" type="index" width="60" /> <el-table-column label="产品大类" prop="productCategory" /> <el-table-column label="规格型号" prop="specificationModel" /> <el-table-column label="单位" prop="unit" /> <el-table-column label="数量" prop="quantity" /> <el-table-column label="税率(%)" prop="taxRate" /> <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-column label="产品名称" prop="productCategory" /> <el-table-column label="产品高度" prop="specificationModel"> <template #default="scope"> <div>{{ scope.row.specificationModel }}{{ scope.row.unit }}</div> </template> </el-table-column> <!-- <el-table-column label="单位" prop="unit" /> --> <el-table-column label="数量/件" prop="quantity" /> <el-table-column label="每件数量/支" prop="boxNum" /> <!-- <el-table-column label="税率(%)" prop="taxRate" /> --> <el-table-column label="单价(元)/件" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" /> <el-table-column label="单价(美元)/件" prop="dollarPrice" /> <el-table-column label="纸箱规格/cm" prop="cartonSpecifications" /> <!-- <el-table-column label="含税总价(元)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" /> <el-table-column label="不含税总价(元)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" /> --> <el-table-column fixed="right" label="操作" min-width="60" align="center" v-if="operationType !== 'view'"> <template #default="scope"> <el-button link type="primary" size="small" @click="openProductForm('edit', scope.row,scope.$index)">编辑</el-button> @@ -214,7 +228,7 @@ <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="productCategory"> <!-- <el-select v-model="productForm.productCategory" placeholder="请选择" clearable> <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/> </el-select> --> @@ -225,7 +239,7 @@ </el-row> <el-row :gutter="30"> <el-col :span="24"> <el-form-item label="规格型号:" prop="productModelId"> <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> @@ -234,7 +248,7 @@ </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="单位:" prop="unit"> <el-form-item label="高度单位:" prop="unit"> <el-input v-model="productForm.unit" placeholder="请输入" clearable /> </el-form-item> </el-col> @@ -250,19 +264,33 @@ </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="含税单价(元):" prop="taxInclusiveUnitPrice"> <el-form-item label="单价(元)/件:" prop="taxInclusiveUnitPrice"> <el-input-number :step="0.01" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%" :precision="2" placeholder="请输入" clearable @change="calculateFromUnitPrice" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="单价(美元)/件:" prop="dollarPrice"> <el-input-number :step="0.01" :min="0" v-model="productForm.dollarPrice" style="width: 100%" :precision="2" placeholder="请输入" clearable/> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="数量:" prop="quantity"> <el-input-number :step="0.1" :min="0" v-model="productForm.quantity" placeholder="请输入" clearable :precision="2" <el-form-item label="数量/件:" prop="quantity"> <el-input-number :min="0" v-model="productForm.quantity" placeholder="请输入" clearable @change="calculateFromQuantity" style="width: 100%" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="每件数量/支:" prop="boxNum"> <el-input-number :min="0" v-model="productForm.boxNum" placeholder="请输入" clearable @change="calculateFromQuantity" style="width: 100%" /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> @@ -277,6 +305,11 @@ </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="纸箱规格/cm:" prop="cartonSpecifications"> <el-input v-model="productForm.cartonSpecifications" placeholder="请输入" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="发票类型:" prop="invoiceType"> <el-select v-model="productForm.invoiceType" placeholder="请选择" clearable> @@ -551,6 +584,9 @@ taxInclusiveTotalPrice: "", taxExclusiveTotalPrice: "", invoiceType: "", cartonSpecifications:'', boxNum: "", dollarPrice: '' }, productRules: { productCategory: [{ required: true, message: "请选择", trigger: "change" }], @@ -561,6 +597,13 @@ unit: [{ required: true, message: "请输入", trigger: "blur" }], quantity: [{ required: true, message: "请输入", trigger: "blur" }], taxInclusiveUnitPrice: [ { required: true, message: "请输入", trigger: "blur" }, ], dollarPrice: [ { required: true, message: "请输入", trigger: "blur" }, ], cartonSpecifications: [{ required: true, message: "请输入", trigger: "blur" }], boxNum: [ { required: true, message: "请输入", trigger: "blur" }, ], taxRate: [{ required: true, message: "请选择", trigger: "change" }], @@ -644,7 +687,7 @@ tableLoading.value = false; }); }; // 获取产品大类tree数据 // 获取产品名称tree数据 const getProductOptions = () => { productTreeList().then((res) => { productOptions.value = convertIdToValue(res); @@ -1393,10 +1436,10 @@ // 根据不含税总价计算含税单价和数量 const calculateFromExclusiveTotalPrice = () => { if (!productForm.value.taxRate) { proxy.$modal.msgWarning("请先选择税率"); return; } // if (!productForm.value.taxRate) { // proxy.$modal.msgWarning("请先选择税率"); // return; // } if (isCalculating.value) return; const exclusiveTotalPrice = parseFloat(productForm.value.taxExclusiveTotalPrice); @@ -1422,10 +1465,10 @@ // 根据数量变化计算总价 const calculateFromQuantity = () => { if (!productForm.value.taxRate) { proxy.$modal.msgWarning("请先选择税率"); return; } // if (!productForm.value.taxRate) { // proxy.$modal.msgWarning("请先选择税率"); // return; // } if (isCalculating.value) return; const quantity = parseFloat(productForm.value.quantity); @@ -1454,10 +1497,10 @@ // 根据含税单价变化计算总价 const calculateFromUnitPrice = () => { if (!productForm.value.taxRate) { proxy.$modal.msgWarning("请先选择税率"); return; } // if (!productForm.value.taxRate) { // proxy.$modal.msgWarning("请先选择税率"); // return; // } if (isCalculating.value) return; const quantity = parseFloat(productForm.value.quantity); @@ -1486,10 +1529,10 @@ // 根据税率变化计算不含税总价 const calculateFromTaxRate = () => { if (!productForm.value.taxRate) { proxy.$modal.msgWarning("请先选择税率"); return; } // if (!productForm.value.taxRate) { // proxy.$modal.msgWarning("请先选择税率"); // return; // } if (isCalculating.value) return; const inclusiveTotalPrice = parseFloat(productForm.value.taxInclusiveTotalPrice);