| | |
| | | <el-tab-pane label="成品出库" name="production"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <span class="search_title ml10">入库日期:</span> |
| | | <el-date-picker |
| | | v-model="searchForm.timeStr" |
| | | type="date" |
| | | placeholder="请选择日期" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | clearable |
| | | @change="handleQuery" |
| | | /> |
| | | <span class="search_title ml10">产品大类:</span> |
| | | <el-input |
| | | v-model="searchForm.productCategory" |
| | |
| | | :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%" |
| | | :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> |
| | | <el-table-column align="center" label="序号" type="index" width="60" /> |
| | | <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="销售合同号" prop="salesContractNo" width="180" show-overflow-tooltip /> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | | <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip /> |
| | | <el-table-column label="剩余库存" prop="inboundNum0" width="90" 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(scope.row);">领用</el-button> |
| | | <el-button link type="primary" size="small" @click="openForm(scope.row);">发货</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-tab-pane label="原料出库" name="purchase"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <span class="search_title ml10">入库日期:</span> |
| | | <el-date-picker |
| | | v-model="searchForm.timeStr" |
| | | type="date" |
| | | placeholder="请选择日期" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | clearable |
| | | @change="handleQuery" |
| | | /> |
| | | <span class="search_title ml10">产品大类:</span> |
| | | <el-input |
| | | v-model="searchForm.productCategory" |
| | |
| | | :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="createTime" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="采购合同号" prop="purchaseContractNumber" width="180" show-overflow-tooltip /> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | | <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" prop="inboundNum" width="90" 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="taxInclusiveTotalPrice" width="150"></el-table-column> |
| | | <el-table-column fixed="right" label="操作" min-width="60" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="openForm(scope.row);">领用</el-button> |
| | | <el-button link type="primary" size="small" @click="openForm(scope.row);">发料</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-tab-pane label="材料出库" name="manual"> |
| | | <div class="search_form"> |
| | | <div> |
| | | <span class="search_title ml10">入库日期:</span> |
| | | <el-date-picker |
| | | v-model="searchForm.timeStr" |
| | | type="date" |
| | | placeholder="请选择日期" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | clearable |
| | | @change="handleQuery" |
| | | /> |
| | | <span class="search_title ml10">产品大类:</span> |
| | | <el-input |
| | | v-model="searchForm.productCategory" |
| | |
| | | :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="code" width="130" show-overflow-tooltip /> |
| | | <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | | <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip /> |
| | | <el-table-column label="物品类型" prop="itemType" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" prop="inboundNum" show-overflow-tooltip /> |
| | | <el-table-column label="剩余库存" prop="inboundNum0" width="90" 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> |
| | | <el-button link type="primary" size="small" @click="openForm(scope.row);">发料</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <el-dialog v-model="dialogFormVisible" :title="'新增出库'" width="40%" @close="closeDia"> |
| | | <el-dialog v-model="dialogFormVisible" :title="getDialogTitle()" width="40%" @close="closeDia"> |
| | | <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="0.01" :min="0" style="width: 100%" v-model="form.inboundQuantity" placeholder="请输入" clearable /> |
| | | <div>{{getAvailableQuantityText()}}:{{currentRowNum}}</div> |
| | | <el-form-item :label="getQuantityLabel()" prop="salesContractNo"> |
| | | <el-input-number :step="0.01" :min="0" :max="currentRowNum" style="width: 100%" v-model="form.inboundQuantity" placeholder="请输入" clearable /> |
| | | </el-form-item> |
| | | <el-form-item label="出库日期:" prop="projectName"> |
| | | <el-form-item :label="getDateLabel()" prop="projectName"> |
| | | <el-date-picker style="width: 100%" v-model="form.inboundTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD" |
| | | type="date" placeholder="请选择" clearable /> |
| | | </el-form-item> |
| | | <el-form-item label="出库人:" prop="entryPerson"> |
| | | <el-select v-model="form.nickName" filterable |
| | | <el-form-item :label="getPersonLabel()" prop="entryPerson"> |
| | | <el-select v-model="form.nickName" |
| | | filterable |
| | | default-first-option |
| | | :reserve-keyword="false" placeholder="请选择" clearable> |
| | | <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" /> |
| | |
| | | delStockManage, |
| | | stockOut, |
| | | } from "@/api/inventoryManagement/stockManage.js"; |
| | | import { getCurrentDate } from "@/utils/index.js"; |
| | | |
| | | const userStore = useUserStore() |
| | | const { proxy } = getCurrentInstance() |
| | |
| | | nickName: '', |
| | | userId: '', |
| | | productCategory:'', |
| | | timeStr: getCurrentDate(), |
| | | // timeStr: getCurrentDate(), |
| | | }, |
| | | form: { |
| | | productrecordId: '', |
| | |
| | | const params = { ...page } |
| | | if (activeTab.value === 'production') { |
| | | params.customerName = searchForm.value.customerName |
| | | params.timeStr = searchForm.value.timeStr |
| | | // params.timeStr = searchForm.value.timeStr |
| | | } else { |
| | | params.supplierName = searchForm.value.supplierName |
| | | params.timeStr = searchForm.value.timeStr |
| | | // params.timeStr = searchForm.value.timeStr |
| | | } |
| | | params.productCategory = searchForm.value.productCategory |
| | | params.flag = true |
| | | let apiCall |
| | | if (activeTab.value === 'production') { |
| | | apiCall = getStockInPageByProduction(params) |
| | |
| | | page.current = 1 |
| | | searchForm.value.supplierName = '' |
| | | searchForm.value.customerName = '' |
| | | searchForm.value.timeStr = '' |
| | | // searchForm.value.timeStr = '' |
| | | selectedRows.value = [] |
| | | searchForm.value.productCategory = '' |
| | | getList() |
| | |
| | | currentRowNum.value = row.inboundNum0 |
| | | salesLedgerProductId.value = row.salesLedgerProductId |
| | | form.value = {} |
| | | // 初始化表单数据 |
| | | form.value = { |
| | | productrecordId: '', |
| | | inboundQuantity: '', // 出库数量清空 |
| | | inboundTime: getCurrentDate(), // 默认当前日期 |
| | | nickName: '', // 默认当前用户 |
| | | } |
| | | console.log('form',form.value) |
| | | |
| | | // 加载用户列表 |
| | | try { |
| | | const userLists = await userListNoPageByTenantId() |
| | | userList.value = userLists.data |
| | | |
| | | // 根据tab类型设置默认发货人 |
| | | let defaultPersonName = '' |
| | | if (activeTab.value === 'production') { |
| | | defaultPersonName = '邓莹莹' |
| | | } else if (activeTab.value === 'purchase') { |
| | | defaultPersonName = '吴玉梅' |
| | | } else if (activeTab.value === 'manual') { |
| | | defaultPersonName = '何琼华' |
| | | } |
| | | |
| | | // 查找对应的用户ID |
| | | const defaultPerson = userList.value.find(user => user.nickName === defaultPersonName) |
| | | const defaultUserId = defaultPerson ? defaultPerson.userId : '' |
| | | |
| | | // 初始化表单数据 |
| | | form.value = { |
| | | productrecordId: '', |
| | | inboundQuantity: currentRowNum.value, // 使用currentRowNum作为默认值 |
| | | inboundTime: getCurrentDate(), // 默认当前日期 |
| | | nickName: defaultUserId, // 根据tab类型设置默认发货人 |
| | | } |
| | | console.log('form',form.value) |
| | | } catch (error) { |
| | | console.error('加载用户列表失败:', error) |
| | | // 如果加载失败,使用空值初始化 |
| | | form.value = { |
| | | productrecordId: '', |
| | | inboundQuantity: currentRowNum.value, |
| | | inboundTime: getCurrentDate(), |
| | | nickName: '', |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | proxy.$modal.msg("已取消") |
| | | }) |
| | | } |
| | | // 获取当前日期并格式化为 YYYY-MM-DD |
| | | function getCurrentDate() { |
| | | const today = new Date(); |
| | | const year = today.getFullYear(); |
| | | const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从0开始 |
| | | const day = String(today.getDate()).padStart(2, '0'); |
| | | return `${year}-${month}-${day}`; |
| | | } |
| | | |
| | | // 根据tab类型获取弹框标题 |
| | | const getDialogTitle = () => { |
| | | const titleMap = { |
| | | production: '新增发货', |
| | | purchase: '新增发料', |
| | | manual: '新增发料' |
| | | }; |
| | | return titleMap[activeTab.value] || '新增出库'; |
| | | }; |
| | | |
| | | // 根据tab类型获取可出库数量文本 |
| | | const getAvailableQuantityText = () => { |
| | | const textMap = { |
| | | production: '可发货数量', |
| | | purchase: '可发料数量', |
| | | manual: '可发料数量' |
| | | }; |
| | | return textMap[activeTab.value] || '可出库数量'; |
| | | }; |
| | | |
| | | // 根据tab类型获取数量字段标签 |
| | | const getQuantityLabel = () => { |
| | | const labelMap = { |
| | | production: '发货数量:', |
| | | purchase: '发料数量:', |
| | | manual: '发料数量:' |
| | | }; |
| | | return labelMap[activeTab.value] || '出库数量:'; |
| | | }; |
| | | |
| | | // 根据tab类型获取日期字段标签 |
| | | const getDateLabel = () => { |
| | | const labelMap = { |
| | | production: '发货日期:', |
| | | purchase: '发料日期:', |
| | | manual: '发料日期:' |
| | | }; |
| | | return labelMap[activeTab.value] || '出库日期:'; |
| | | }; |
| | | |
| | | // 根据tab类型获取人员字段标签 |
| | | const getPersonLabel = () => { |
| | | const labelMap = { |
| | | production: '发货人:', |
| | | purchase: '发料人:', |
| | | manual: '发料人:' |
| | | }; |
| | | return labelMap[activeTab.value] || '出库人:'; |
| | | }; |
| | | |
| | | onMounted(() => { |
| | | getList() |
| | | }) |
| | | </script> |
| | | |
| | | <style scoped lang="scss"></style> |
| | | |
| | | |
| | | |