| | |
| | | clearable> |
| | | <el-option v-for="item in stockRecordTypeOptions" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | :value="item.key"/> |
| | | :label="item.label" |
| | | :value="item.value"/> |
| | | </el-select> |
| | | <el-button type="primary" |
| | | @click="handleQuery" |
| | |
| | | getStockInRecordListPage, |
| | | batchDeleteStockInRecords, |
| | | } from "@/api/inventoryManagement/stockInRecord.js"; |
| | | import {findAllStockRecordTypeOptions} from "@/api/basicData/enum.js"; |
| | | import { |
| | | findAllQualifiedStockInRecordTypeOptions, findAllUnQualifiedStockInRecordTypeOptions, |
| | | } from "@/api/basicData/enum.js"; |
| | | |
| | | const {proxy} = getCurrentInstance(); |
| | | |
| | | const props = defineProps({ |
| | | type: { |
| | | type: String, |
| | | required: true, |
| | | default: '0' |
| | | productId: { |
| | | type: [String, Number], |
| | | default: '' |
| | | } |
| | | }) |
| | | |
| | |
| | | const stockRecordTypeOptions = ref([]); |
| | | const page = reactive({ |
| | | current: 1, |
| | | size: 100, |
| | | size: 10, |
| | | }); |
| | | const total = ref(0); |
| | | |
| | |
| | | }; |
| | | |
| | | const getRecordType = (recordType) => { |
| | | return stockRecordTypeOptions.value.find(item => item.key === recordType)?.value || '' |
| | | return stockRecordTypeOptions.value.find(item => item.value === recordType)?.label || '' |
| | | } |
| | | |
| | | const pageProductChange = obj => { |
| | |
| | | |
| | | const getList = () => { |
| | | tableLoading.value = true; |
| | | const params = {...page, type: props.type}; |
| | | const params = {...page, topParentProductId: props.productId}; |
| | | params.timeStr = searchForm.value.timeStr; |
| | | params.productName = searchForm.value.productName; |
| | | params.recordType = searchForm.value.recordType; |
| | | getStockInRecordListPage(params) |
| | | .then(res => { |
| | | tableData.value = res.data.records; |
| | | total.value = res.data.total || 0; |
| | | }).finally(() => { |
| | | tableLoading.value = false; |
| | | }) |
| | |
| | | |
| | | // 获取来源类型选项 |
| | | const fetchStockRecordTypeOptions = () => { |
| | | findAllStockRecordTypeOptions() |
| | | .then(res => { |
| | | stockRecordTypeOptions.value = res.data; |
| | | }) |
| | | // 同时获取合格和不合格的来源类型选项 |
| | | Promise.all([ |
| | | findAllQualifiedStockInRecordTypeOptions(), |
| | | findAllUnQualifiedStockInRecordTypeOptions() |
| | | ]).then(([qualifiedRes, unQualifiedRes]) => { |
| | | const qualified = qualifiedRes.data || []; |
| | | const unQualified = unQualifiedRes.data || []; |
| | | // 合并并去重 |
| | | const allOptions = [...qualified, ...unQualified]; |
| | | const uniqueOptions = allOptions.filter((item, index, self) => |
| | | index === self.findIndex((t) => t.value === item.value) |
| | | ); |
| | | stockRecordTypeOptions.value = uniqueOptions; |
| | | }); |
| | | } |
| | | |
| | | // 表格选择数据 |
| | |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // 根据不同的 tab 类型调用不同的导出接口 |
| | | let exportUrl = "/stockin/export"; |
| | | proxy.download(exportUrl, {}, "入库台账.xlsx"); |
| | | proxy.download("/stockInRecord/exportStockInRecord", { topParentProductId: props.productId }, "入库台账.xlsx"); |
| | | }) |
| | | .catch(() => { |
| | | proxy.$modal.msg("已取消"); |