feat(market): MaterialUsageTab 支持 mineOnly 模式
- 添加 mineOnly prop,默认 false - mineOnly 时使用 fetchMyMaterialUsageList 接口 - mineOnly 时变动类型下拉不显示"入库" - mineOnly 时表格显示"使用状态"列 - mineOnly 时隐藏"领用人"列 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
768294450b
commit
5f0d7c70f9
1 file changed
+43
-4
@@ -34,7 +34,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="变动类型">
|
||||
<el-select v-model="searchForm.changeType" placeholder="全部" clearable>
|
||||
<el-option label="入库" value="in" />
|
||||
<el-option v-if="!mineOnly" label="入库" value="in" />
|
||||
<el-option label="出库" value="out" />
|
||||
<el-option label="废弃" value="discard" />
|
||||
</el-select>
|
||||
@@ -53,7 +53,11 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="filter-actions-row">
|
||||
<span class="filter-hint">按物料、入库编号、批号、变动类型和时间范围查询变动记录。</span>
|
||||
<span class="filter-hint">{{
|
||||
mineOnly
|
||||
? '查看本人物料领用记录,可按物料、批号、类型与时间范围筛选。'
|
||||
: '按物料、入库编号、批号、变动类型和时间范围查询变动记录。'
|
||||
}}</span>
|
||||
<div class="filter-actions-end">
|
||||
<el-button class="btn-ghost" @click="handleReset">
|
||||
<el-icon><RefreshLeft /></el-icon>重置
|
||||
@@ -164,6 +168,25 @@
|
||||
align="center"
|
||||
header-align="center"
|
||||
/>
|
||||
<el-table-column
|
||||
v-if="mineOnly"
|
||||
label="使用状态"
|
||||
min-width="100"
|
||||
align="center"
|
||||
header-align="center"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<template v-if="isManualOutRow(row)">
|
||||
<el-tag v-if="row.requisitionStatus === 'closed'" type="success" size="small">
|
||||
已使用完
|
||||
</el-tag>
|
||||
<el-tag v-else type="info" size="small">
|
||||
使用中
|
||||
</el-tag>
|
||||
</template>
|
||||
<span v-else>—</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="sourceType"
|
||||
label="来源类型"
|
||||
@@ -178,6 +201,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="!mineOnly"
|
||||
label="领用人"
|
||||
min-width="100"
|
||||
align="center"
|
||||
@@ -284,7 +308,11 @@
|
||||
import { ref, reactive, computed, onMounted } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { Search, RefreshLeft, View, Document, CircleCheck } from '@element-plus/icons-vue'
|
||||
import { fetchMaterialUsageList, fetchMarkMaterialUsageFullyUsed } from '@/api/material-usage'
|
||||
import {
|
||||
fetchMaterialUsageList,
|
||||
fetchMyMaterialUsageList,
|
||||
fetchMarkMaterialUsageFullyUsed
|
||||
} from '@/api/material-usage'
|
||||
import type { MaterialUsage } from '@/api/material-usage'
|
||||
import { fetchMaterialList } from '@/api/material'
|
||||
import type { MaterialOption } from '@/api/material'
|
||||
@@ -293,6 +321,15 @@
|
||||
|
||||
defineOptions({ name: 'MaterialUsageTab' })
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
mineOnly?: boolean
|
||||
}>(),
|
||||
{
|
||||
mineOnly: false
|
||||
}
|
||||
)
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
const searchForm = reactive<{
|
||||
@@ -463,7 +500,9 @@
|
||||
params.startTime = dateRange.value[0]
|
||||
params.endTime = dateRange.value[1]
|
||||
}
|
||||
const res = await fetchMaterialUsageList(params)
|
||||
const res = props.mineOnly
|
||||
? await fetchMyMaterialUsageList(params)
|
||||
: await fetchMaterialUsageList(params)
|
||||
tableData.value = res.list || []
|
||||
pagination.total = res.total ?? 0
|
||||
} finally {
|
||||
|
||||
Reference in new issue
Block a user