feat(wms):减法,去掉 detail 表,和 mes 更对齐
parent
70aff05ef5
commit
c5948d405e
|
|
@ -1,36 +0,0 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// WMS 库存明细 VO
|
||||
export interface InventoryDetailVO {
|
||||
id?: number
|
||||
itemId?: number
|
||||
itemCode?: string
|
||||
itemName?: string
|
||||
unit?: string
|
||||
skuId?: number
|
||||
skuCode?: string
|
||||
skuName?: string
|
||||
warehouseId?: number
|
||||
warehouseName?: string
|
||||
areaId?: number
|
||||
areaName?: string
|
||||
quantity?: number
|
||||
remainQuantity?: number
|
||||
batchNo?: string
|
||||
productionDate?: Date
|
||||
expirationDate?: Date
|
||||
amount?: number
|
||||
remark?: string
|
||||
orderId?: number
|
||||
orderNo?: string
|
||||
orderType?: number
|
||||
createTime?: Date
|
||||
}
|
||||
|
||||
// WMS 库存明细 API
|
||||
export const InventoryDetailApi = {
|
||||
// 查询库存明细分页
|
||||
getInventoryDetailPage: async (params: any) => {
|
||||
return await request.get({ url: '/wms/inventory-detail/page', params })
|
||||
}
|
||||
}
|
||||
|
|
@ -10,7 +10,6 @@ export interface CheckOrderDetailVO {
|
|||
skuCode?: string
|
||||
skuName?: string
|
||||
inventoryId?: number
|
||||
inventoryDetailId?: number
|
||||
warehouseId?: number
|
||||
warehouseName?: string
|
||||
areaId?: number
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ export interface MovementOrderDetailVO {
|
|||
skuId?: number
|
||||
skuCode?: string
|
||||
skuName?: string
|
||||
inventoryDetailId?: number
|
||||
sourceWarehouseId?: number
|
||||
sourceWarehouseName?: string
|
||||
sourceAreaId?: number
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ export interface ShipmentOrderDetailVO {
|
|||
skuId?: number
|
||||
skuCode?: string
|
||||
skuName?: string
|
||||
inventoryDetailId?: number
|
||||
warehouseId?: number
|
||||
warehouseName?: string
|
||||
areaId?: number
|
||||
|
|
|
|||
|
|
@ -1,400 +0,0 @@
|
|||
<!-- WMS 库存明细 -->
|
||||
<template>
|
||||
<ContentWrap>
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form
|
||||
ref="queryFormRef"
|
||||
:inline="true"
|
||||
:model="queryParams"
|
||||
class="-mb-15px"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="统计维度" prop="type">
|
||||
<el-radio-group v-model="queryParams.type" class="!w-240px" @change="handleTypeChange">
|
||||
<el-radio-button
|
||||
v-for="item in detailDimensionOptions"
|
||||
:key="item.value"
|
||||
:label="item.value"
|
||||
>
|
||||
{{ item.label }}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品编号" prop="itemCode">
|
||||
<el-input
|
||||
v-model="queryParams.itemCode"
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请输入商品编号"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品名称" prop="itemName">
|
||||
<el-input
|
||||
v-model="queryParams.itemName"
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请输入商品名称"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库" prop="warehouseId">
|
||||
<WarehouseSelect
|
||||
v-model="queryParams.warehouseId"
|
||||
class="!w-240px"
|
||||
@change="handleWarehouseChange"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="AREA_ENABLE" label="库区" prop="areaId">
|
||||
<WarehouseAreaSelect
|
||||
v-model="queryParams.areaId"
|
||||
:warehouse-id="queryParams.warehouseId"
|
||||
class="!w-240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="规格编号" prop="skuCode">
|
||||
<el-input
|
||||
v-model="queryParams.skuCode"
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请输入规格编号"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="规格名称" prop="skuName">
|
||||
<el-input
|
||||
v-model="queryParams.skuName"
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请输入规格名称"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="BATCH_ENABLE" label="批号" prop="batchNo">
|
||||
<el-input
|
||||
v-model="queryParams.batchNo"
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请输入批号"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="BATCH_ENABLE" label="过期" prop="daysToExpires">
|
||||
<el-select
|
||||
v-model="queryParams.daysToExpires"
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请选择过期时间"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in expirationDayOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="入库日期" prop="createTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.createTime"
|
||||
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
|
||||
:shortcuts="defaultShortcuts"
|
||||
class="!w-240px"
|
||||
end-placeholder="结束日期"
|
||||
start-placeholder="开始日期"
|
||||
type="daterange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery">
|
||||
<Icon class="mr-5px" icon="ep:search" />
|
||||
搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon class="mr-5px" icon="ep:refresh" />
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
|
||||
<!-- 库存明细列表 -->
|
||||
<ContentWrap>
|
||||
<div class="mb-12px text-16px font-500">库存明细</div>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:cell-class-name="'wms-inventory-detail-cell'"
|
||||
:data="list"
|
||||
:show-overflow-tooltip="true"
|
||||
:span-method="spanMethod"
|
||||
border
|
||||
>
|
||||
<template v-if="queryParams.type === INVENTORY_DETAIL_DIMENSION.WAREHOUSE">
|
||||
<el-table-column label="仓库" min-width="160" prop="warehouseId">
|
||||
<template #default="scope">
|
||||
{{ scope.row.warehouseName || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="AREA_ENABLE" label="库区" min-width="160" prop="areaId">
|
||||
<template #default="scope">
|
||||
{{ scope.row.areaName || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="商品信息"
|
||||
min-width="240"
|
||||
:prop="AREA_ENABLE ? 'areaItemId' : 'warehouseItemId'"
|
||||
>
|
||||
<template #default="scope">
|
||||
<div>{{ scope.row.itemName || '-' }}</div>
|
||||
<div v-if="scope.row.itemCode" class="text-12px text-gray-500">
|
||||
商品编号:{{ scope.row.itemCode }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="规格信息"
|
||||
min-width="220"
|
||||
:prop="AREA_ENABLE ? 'areaSkuId' : 'warehouseSkuId'"
|
||||
>
|
||||
<template #default="scope">
|
||||
<div>{{ scope.row.skuName || '-' }}</div>
|
||||
<div v-if="scope.row.skuCode" class="text-12px text-gray-500">
|
||||
规格编号:{{ scope.row.skuCode }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-table-column label="商品信息" min-width="240" prop="itemId">
|
||||
<template #default="scope">
|
||||
<div>{{ scope.row.itemName || '-' }}</div>
|
||||
<div v-if="scope.row.itemCode" class="text-12px text-gray-500">
|
||||
商品编号:{{ scope.row.itemCode }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="规格信息" min-width="220" prop="skuId">
|
||||
<template #default="scope">
|
||||
<div>{{ scope.row.skuName || '-' }}</div>
|
||||
<div v-if="scope.row.skuCode" class="text-12px text-gray-500">
|
||||
规格编号:{{ scope.row.skuCode }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="仓库" min-width="160" prop="skuWarehouseId">
|
||||
<template #default="scope">
|
||||
{{ scope.row.warehouseName || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="AREA_ENABLE" label="所属库区" min-width="160" prop="skuAreaId">
|
||||
<template #default="scope">
|
||||
{{ scope.row.areaName || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<el-table-column
|
||||
:formatter="dateFormatter"
|
||||
align="center"
|
||||
label="入库日期"
|
||||
prop="createTime"
|
||||
width="180"
|
||||
/>
|
||||
<el-table-column align="right" label="库存" min-width="120">
|
||||
<template #default="scope">
|
||||
<div>剩余:{{ formatQuantity(scope.row.remainQuantity) }}</div>
|
||||
<div class="text-12px text-gray-500">原始:{{ formatQuantity(scope.row.quantity) }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="BATCH_ENABLE"
|
||||
align="center"
|
||||
label="批号"
|
||||
min-width="140"
|
||||
prop="batchNo"
|
||||
/>
|
||||
<el-table-column
|
||||
v-if="BATCH_ENABLE"
|
||||
align="left"
|
||||
label="生产日期/过期日期"
|
||||
min-width="180"
|
||||
>
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.productionDate">
|
||||
生产日期:{{ formatDate(scope.row.productionDate, 'YYYY-MM-DD') }}
|
||||
</div>
|
||||
<div v-if="scope.row.expirationDate">
|
||||
过期日期:{{ formatDate(scope.row.expirationDate, 'YYYY-MM-DD') }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<Pagination
|
||||
v-model:limit="queryParams.pageSize"
|
||||
v-model:page="queryParams.pageNo"
|
||||
:total="total"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</ContentWrap>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { dateFormatter, defaultShortcuts, formatDate } from '@/utils/formatTime'
|
||||
import { InventoryDetailApi, InventoryDetailVO } from '@/api/wms/inventory/detail'
|
||||
import WarehouseAreaSelect from '@/views/wms/md/warehouse/components/WarehouseAreaSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { formatQuantity } from '@/views/wms/utils/format'
|
||||
|
||||
/** WMS 库存明细 */
|
||||
defineOptions({ name: 'WmsInventoryDetail' })
|
||||
|
||||
const INVENTORY_DETAIL_DIMENSION = {
|
||||
WAREHOUSE: 'warehouse',
|
||||
ITEM: 'item'
|
||||
} as const
|
||||
type InventoryDetailDimension =
|
||||
(typeof INVENTORY_DETAIL_DIMENSION)[keyof typeof INVENTORY_DETAIL_DIMENSION]
|
||||
|
||||
const detailDimensionOptions = [
|
||||
{ label: '仓库库区', value: INVENTORY_DETAIL_DIMENSION.WAREHOUSE },
|
||||
{ label: '商品', value: INVENTORY_DETAIL_DIMENSION.ITEM }
|
||||
]
|
||||
const expirationDayOptions = [
|
||||
{ label: '30天内', value: 30 },
|
||||
{ label: '60天内', value: 60 },
|
||||
{ label: '90天内', value: 90 },
|
||||
{ label: '120天内', value: 120 },
|
||||
{ label: '180天内', value: 180 },
|
||||
{ label: '365天内', value: 365 }
|
||||
]
|
||||
|
||||
interface InventoryDetailRow extends InventoryDetailVO {
|
||||
warehouseItemId?: string
|
||||
warehouseSkuId?: string
|
||||
areaItemId?: string
|
||||
areaSkuId?: string
|
||||
skuWarehouseId?: string
|
||||
skuAreaId?: string
|
||||
}
|
||||
|
||||
interface SpanMethodProps {
|
||||
column: {
|
||||
property?: string
|
||||
}
|
||||
rowIndex: number
|
||||
}
|
||||
|
||||
const loading = ref(true) // 列表的加载中
|
||||
const list = ref<InventoryDetailRow[]>([]) // 列表的数据
|
||||
const total = ref(0) // 列表的总页数
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
type: INVENTORY_DETAIL_DIMENSION.WAREHOUSE as InventoryDetailDimension,
|
||||
itemCode: undefined as string | undefined,
|
||||
itemName: undefined as string | undefined,
|
||||
skuCode: undefined as string | undefined,
|
||||
skuName: undefined as string | undefined,
|
||||
warehouseId: undefined as number | undefined,
|
||||
areaId: undefined as number | undefined,
|
||||
batchNo: undefined as string | undefined,
|
||||
daysToExpires: undefined as number | undefined,
|
||||
createTime: [] as string[]
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
|
||||
/** 查询库存明细列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await InventoryDetailApi.getInventoryDetailPage(queryParams)
|
||||
list.value = data.list.map((item: InventoryDetailVO) => ({
|
||||
...item,
|
||||
// 展示字段
|
||||
warehouseItemId: `${item.warehouseId || 0}-${item.itemId || 0}`,
|
||||
warehouseSkuId: `${item.warehouseId || 0}-${item.skuId || 0}`,
|
||||
areaItemId: `${item.warehouseId || 0}-${item.areaId || 0}-${item.itemId || 0}`,
|
||||
areaSkuId: `${item.warehouseId || 0}-${item.areaId || 0}-${item.skuId || 0}`,
|
||||
skuWarehouseId: `${item.skuId || 0}-${item.warehouseId || 0}`,
|
||||
skuAreaId: `${item.skuId || 0}-${item.warehouseId || 0}-${item.areaId || 0}`
|
||||
}))
|
||||
total.value = data.total
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.pageNo = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value.resetFields()
|
||||
queryParams.type = INVENTORY_DETAIL_DIMENSION.WAREHOUSE
|
||||
handleQuery()
|
||||
}
|
||||
|
||||
/** 统计维度变化 */
|
||||
const handleTypeChange = () => {
|
||||
queryParams.pageNo = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 仓库变化 */
|
||||
const handleWarehouseChange = () => {
|
||||
queryParams.areaId = undefined
|
||||
}
|
||||
|
||||
/** 合并库存明细的维度单元格 */
|
||||
const spanMethod = ({ column, rowIndex }: SpanMethodProps) => {
|
||||
const property = column.property
|
||||
if (!property || !getRowSpanProperties().includes(property)) {
|
||||
return { rowspan: 1, colspan: 1 }
|
||||
}
|
||||
const row = list.value[rowIndex]
|
||||
if (
|
||||
rowIndex > 0 &&
|
||||
getRowPropertyValue(list.value[rowIndex - 1], property) === getRowPropertyValue(row, property)
|
||||
) {
|
||||
return { rowspan: 0, colspan: 0 }
|
||||
}
|
||||
let rowspan = 1
|
||||
for (let index = rowIndex + 1; index < list.value.length; index++) {
|
||||
if (getRowPropertyValue(list.value[index], property) !== getRowPropertyValue(row, property)) {
|
||||
break
|
||||
}
|
||||
rowspan++
|
||||
}
|
||||
return { rowspan, colspan: 1 }
|
||||
}
|
||||
|
||||
const getRowPropertyValue = (row: InventoryDetailRow | undefined, property: string) => {
|
||||
return row?.[property as keyof InventoryDetailRow]
|
||||
}
|
||||
|
||||
const getRowSpanProperties = () => {
|
||||
if (queryParams.type === INVENTORY_DETAIL_DIMENSION.ITEM) {
|
||||
return ['itemId', 'skuId', 'skuWarehouseId', 'skuAreaId']
|
||||
}
|
||||
return AREA_ENABLE
|
||||
? ['warehouseId', 'areaId', 'areaItemId', 'areaSkuId']
|
||||
: ['warehouseId', 'warehouseItemId', 'warehouseSkuId']
|
||||
}
|
||||
|
||||
/** 初始化 */
|
||||
onMounted(async () => {
|
||||
await getList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
:deep(.wms-inventory-detail-cell) {
|
||||
vertical-align: top;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -151,12 +151,12 @@
|
|||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="!BATCH_ENABLE" align="right" label="操作前" min-width="110">
|
||||
<el-table-column align="right" label="操作前" min-width="110">
|
||||
<template #default="scope">
|
||||
{{ formatQuantity(scope.row.beforeQuantity) || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="!BATCH_ENABLE" align="right" label="操作后" min-width="110">
|
||||
<el-table-column align="right" label="操作后" min-width="110">
|
||||
<template #default="scope">
|
||||
{{ formatQuantity(scope.row.afterQuantity) || '-' }}
|
||||
</template>
|
||||
|
|
@ -173,14 +173,8 @@
|
|||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="BATCH_ENABLE"
|
||||
align="center"
|
||||
label="批号"
|
||||
min-width="140"
|
||||
prop="batchNo"
|
||||
/>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="生产日期/过期日期" min-width="180">
|
||||
<el-table-column align="center" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="生产日期/过期日期" min-width="180">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.productionDate">
|
||||
生产日期:{{ formatDate(scope.row.productionDate, 'YYYY-MM-DD') }}
|
||||
|
|
@ -215,7 +209,7 @@ import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|||
import { InventoryHistoryApi, InventoryHistoryVO } from '@/api/wms/inventory/history'
|
||||
import WarehouseAreaSelect from '@/views/wms/md/warehouse/components/WarehouseAreaSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { formatPrice, formatQuantity } from '@/views/wms/utils/format'
|
||||
|
||||
/** WMS 库存流水 */
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
<div v-if="row.skuCode" class="text-12px text-gray-500">规格编号:{{ row.skuCode }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column align="right" label="账面数量" prop="quantity" width="120">
|
||||
<template #default="{ row }">{{ formatQuantity(row.quantity) || '-' }}</template>
|
||||
</el-table-column>
|
||||
|
|
@ -73,7 +73,7 @@ import { formatNullableDate } from '@/utils/formatTime'
|
|||
import { DICT_TYPE } from '@/utils/dict'
|
||||
import { CheckOrderApi, CheckOrderVO } from '@/api/wms/order/check'
|
||||
import { CheckOrderDetailVO } from '@/api/wms/order/check/detail'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { formatPrice, formatQuantity, formatSumPrice, formatSumQuantity } from '@/views/wms/utils/format'
|
||||
|
||||
/** WMS 盘库单详情 */
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
<div v-if="row.skuCode" class="text-12px text-gray-500">规格编号:{{ row.skuCode }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column align="right" label="账面数量" width="120">
|
||||
<template #default="{ row }">{{ formatQuantity(row.quantity) || '-' }}</template>
|
||||
</el-table-column>
|
||||
|
|
@ -154,7 +154,7 @@ import { CheckOrderDetailVO } from '@/api/wms/order/check/detail'
|
|||
import InventorySelect, { InventorySelectRow } from '@/views/wms/inventory/components/InventorySelect.vue'
|
||||
import WarehouseAreaSelect from '@/views/wms/md/warehouse/components/WarehouseAreaSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { OrderStatusEnum, OrderUpdateStatusList } from '@/views/wms/utils/constants'
|
||||
import { formatQuantity, PRICE_PRECISION, QUANTITY_PRECISION, sumPrice } from '@/views/wms/utils/format'
|
||||
import { generateOrderNo } from '@/views/wms/utils/order'
|
||||
|
|
@ -235,7 +235,6 @@ const buildDetail = (inventory: InventorySelectRow): CheckOrderDetailVO => ({
|
|||
skuCode: inventory.skuCode,
|
||||
skuName: inventory.skuName,
|
||||
inventoryId: inventory.id,
|
||||
inventoryDetailId: inventory.inventoryDetailId,
|
||||
warehouseId: inventory.warehouseId,
|
||||
warehouseName: inventory.warehouseName,
|
||||
areaId: inventory.areaId,
|
||||
|
|
@ -262,7 +261,6 @@ const handleSelectInventory = (inventories: InventorySelectRow[]) => {
|
|||
}
|
||||
const isInventorySelected = (inventory: InventorySelectRow) =>
|
||||
(formData.value.details || []).some((detail) => {
|
||||
if (BATCH_ENABLE) return detail.inventoryDetailId === inventory.inventoryDetailId
|
||||
return detail.inventoryId === inventory.id
|
||||
})
|
||||
const handleDeleteDetail = (index: number) => {
|
||||
|
|
|
|||
|
|
@ -32,12 +32,74 @@
|
|||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="盈亏数量" prop="totalQuantityMin">
|
||||
<div class="flex w-240px items-center gap-8px">
|
||||
<el-input-number
|
||||
v-model="queryParams.totalQuantityMin"
|
||||
:controls="false"
|
||||
:precision="QUANTITY_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最小值"
|
||||
/>
|
||||
<span>至</span>
|
||||
<el-input-number
|
||||
v-model="queryParams.totalQuantityMax"
|
||||
:controls="false"
|
||||
:precision="QUANTITY_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最大值"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="总金额" prop="totalAmountMin">
|
||||
<div class="flex w-240px items-center gap-8px">
|
||||
<el-input-number
|
||||
v-model="queryParams.totalAmountMin"
|
||||
:controls="false"
|
||||
:min="0"
|
||||
:precision="PRICE_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最小值"
|
||||
/>
|
||||
<span>至</span>
|
||||
<el-input-number
|
||||
v-model="queryParams.totalAmountMax"
|
||||
:controls="false"
|
||||
:min="0"
|
||||
:precision="PRICE_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最大值"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建用户" prop="creator">
|
||||
<UserSelectV2 v-model="queryParams.creator" class="!w-240px" placeholder="请选择创建用户" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新用户" prop="updater">
|
||||
<UserSelectV2 v-model="queryParams.updater" class="!w-240px" placeholder="请选择更新用户" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.createTime"
|
||||
:shortcuts="defaultShortcuts"
|
||||
class="!w-240px"
|
||||
end-placeholder="结束时间"
|
||||
start-placeholder="开始时间"
|
||||
type="datetimerange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="updateTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.updateTime"
|
||||
:shortcuts="defaultShortcuts"
|
||||
class="!w-240px"
|
||||
end-placeholder="结束时间"
|
||||
start-placeholder="开始时间"
|
||||
type="datetimerange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery">
|
||||
<Icon class="mr-5px" icon="ep:search" />
|
||||
|
|
@ -47,6 +109,22 @@
|
|||
<Icon class="mr-5px" icon="ep:refresh" />
|
||||
重置
|
||||
</el-button>
|
||||
<el-popover popper-class="wms-check-order-table-setting-popover" trigger="click" width="520">
|
||||
<template #reference>
|
||||
<el-button>
|
||||
<Icon class="mr-5px" icon="ep:setting" />
|
||||
表格设置
|
||||
</el-button>
|
||||
</template>
|
||||
<el-checkbox-group
|
||||
v-model="checkedTableColumns"
|
||||
class="wms-check-order-table-setting grid grid-cols-3 gap-y-14px rounded p-16px"
|
||||
>
|
||||
<el-checkbox v-for="column in tableColumnOptions" :key="column.value" :label="column.value">
|
||||
{{ column.label }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-popover>
|
||||
<el-button v-hasPermi="['wms:check-order:create']" plain type="primary" @click="openForm('create')">
|
||||
<Icon class="mr-5px" icon="ep:plus" />
|
||||
新增
|
||||
|
|
@ -68,6 +146,7 @@
|
|||
<ContentWrap>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:cell-class-name="'wms-check-order-cell'"
|
||||
:data="list"
|
||||
:show-overflow-tooltip="true"
|
||||
border
|
||||
|
|
@ -88,7 +167,7 @@
|
|||
<div v-if="detail.skuCode" class="text-12px text-gray-500">规格编号:{{ detail.skuCode }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column align="right" label="账面数量" width="120">
|
||||
<template #default="{ row: detail }">{{ formatQuantity(detail.quantity) }}</template>
|
||||
</el-table-column>
|
||||
|
|
@ -101,18 +180,28 @@
|
|||
</el-table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="left" label="单号" width="210">
|
||||
<el-table-column v-if="isTableColumnVisible('no')" fixed="left" label="单号" width="210">
|
||||
<template #default="{ row }">
|
||||
单号:
|
||||
<el-button link type="primary" @click="openDetail(row.id)">{{ row.no }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" fixed="left" label="盘库状态" width="110">
|
||||
<el-table-column
|
||||
v-if="isTableColumnVisible('status')"
|
||||
align="center"
|
||||
fixed="left"
|
||||
label="盘库状态"
|
||||
width="110"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.WMS_ORDER_STATUS" :value="row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="AREA_ENABLE ? '仓库/库区' : '仓库'" min-width="180">
|
||||
<el-table-column
|
||||
v-if="isTableColumnVisible('warehouse')"
|
||||
:label="AREA_ENABLE ? '仓库/库区' : '仓库'"
|
||||
min-width="180"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<template v-if="AREA_ENABLE">
|
||||
<div>仓库:{{ row.warehouseName || '-' }}</div>
|
||||
|
|
@ -121,10 +210,10 @@
|
|||
<template v-else>{{ row.warehouseName || '-' }}</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="盈亏数量/总金额(元)" min-width="180">
|
||||
<el-table-column v-if="isTableColumnVisible('quantityAmount')" label="盈亏数量/总金额(元)" min-width="180">
|
||||
<template #default="{ row }">
|
||||
<div class="flex items-center justify-between">
|
||||
<span>数量:</span>
|
||||
<span>盈亏:</span>
|
||||
<span>{{ formatQuantity(row.totalQuantity) }}</span>
|
||||
</div>
|
||||
<div class="flex items-center justify-between">
|
||||
|
|
@ -133,13 +222,13 @@
|
|||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作信息" min-width="280">
|
||||
<el-table-column v-if="isTableColumnVisible('operateInfo')" label="操作信息" min-width="280">
|
||||
<template #default="{ row }">
|
||||
<div>创建:{{ formatNullableDate(row.createTime) }} / {{ row.creatorName || row.creator || '-' }}</div>
|
||||
<div>更新:{{ formatNullableDate(row.updateTime) }} / {{ row.updaterName || row.updater || '-' }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" min-width="160" prop="remark" />
|
||||
<el-table-column v-if="isTableColumnVisible('remark')" label="备注" min-width="160" prop="remark" />
|
||||
<el-table-column align="center" fixed="right" label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-tooltip :content="getUpdateTip(row.status)" :disabled="canUpdate(row.status)" placement="top">
|
||||
|
|
@ -185,9 +274,9 @@ import { CheckOrderApi, CheckOrderVO } from '@/api/wms/order/check'
|
|||
import { CheckOrderDetailVO } from '@/api/wms/order/check/detail'
|
||||
import WarehouseAreaSelect from '@/views/wms/md/warehouse/components/WarehouseAreaSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { OrderDeleteStatusList, OrderStatusEnum, OrderUpdateStatusList } from '@/views/wms/utils/constants'
|
||||
import { formatPrice, formatQuantity } from '@/views/wms/utils/format'
|
||||
import { formatPrice, formatQuantity, PRICE_PRECISION, QUANTITY_PRECISION } from '@/views/wms/utils/format'
|
||||
import UserSelectV2 from '@/views/system/user/components/UserSelectV2.vue'
|
||||
import CheckOrderDetail from './CheckOrderDetail.vue'
|
||||
import CheckOrderForm from './CheckOrderForm.vue'
|
||||
|
|
@ -199,6 +288,26 @@ defineOptions({ name: 'WmsCheckOrder' })
|
|||
const message = useMessage()
|
||||
const { t } = useI18n()
|
||||
|
||||
type TableColumnKey = 'no' | 'status' | 'warehouse' | 'quantityAmount' | 'operateInfo' | 'remark'
|
||||
|
||||
const tableColumnOptions: Array<{ label: string; value: TableColumnKey }> = [
|
||||
{ label: '单号', value: 'no' },
|
||||
{ label: '盘库状态', value: 'status' },
|
||||
{ label: '仓库', value: 'warehouse' },
|
||||
{ label: '盈亏/金额(元)', value: 'quantityAmount' },
|
||||
{ label: '操作信息', value: 'operateInfo' },
|
||||
{ label: '备注', value: 'remark' }
|
||||
]
|
||||
const checkedTableColumns = ref<TableColumnKey[]>([
|
||||
'no',
|
||||
'status',
|
||||
'warehouse',
|
||||
'quantityAmount',
|
||||
'operateInfo',
|
||||
'remark'
|
||||
])
|
||||
const isTableColumnVisible = (column: TableColumnKey) => checkedTableColumns.value.includes(column)
|
||||
|
||||
const loading = ref(true)
|
||||
const list = ref<CheckOrderVO[]>([])
|
||||
const total = ref(0)
|
||||
|
|
@ -210,8 +319,14 @@ const getDefaultQueryParams = () => ({
|
|||
warehouseId: undefined as number | undefined,
|
||||
areaId: undefined as number | undefined,
|
||||
orderDate: undefined as string[] | undefined,
|
||||
totalQuantityMin: undefined as number | undefined,
|
||||
totalQuantityMax: undefined as number | undefined,
|
||||
totalAmountMin: undefined as number | undefined,
|
||||
totalAmountMax: undefined as number | undefined,
|
||||
creator: undefined as number | undefined,
|
||||
updater: undefined as number | undefined
|
||||
updater: undefined as number | undefined,
|
||||
createTime: undefined as string[] | undefined,
|
||||
updateTime: undefined as string[] | undefined
|
||||
})
|
||||
const queryParams = reactive(getDefaultQueryParams())
|
||||
const queryFormRef = ref()
|
||||
|
|
@ -282,3 +397,27 @@ const handleExport = async () => {
|
|||
|
||||
onMounted(() => getList())
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
:deep(.wms-check-order-cell) {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
:global(.wms-check-order-table-setting-popover) {
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
:global(.wms-check-order-table-setting) {
|
||||
background-color: var(--el-fill-color-light);
|
||||
}
|
||||
|
||||
:global(.wms-check-order-table-setting .el-checkbox) {
|
||||
height: 28px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
:global(.wms-check-order-table-setting .el-checkbox__label) {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<div v-if="row.skuCode" class="text-12px text-gray-500">规格编号:{{ row.skuCode }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column align="right" label="数量" prop="quantity" width="120">
|
||||
<template #default="{ row }">{{ formatQuantity(row.quantity) || '-' }}</template>
|
||||
</el-table-column>
|
||||
|
|
@ -80,7 +80,7 @@ import { formatNullableDate } from '@/utils/formatTime'
|
|||
import { DICT_TYPE } from '@/utils/dict'
|
||||
import { MovementOrderApi, MovementOrderVO } from '@/api/wms/order/movement'
|
||||
import { MovementOrderDetailVO } from '@/api/wms/order/movement/detail'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { formatPrice, formatQuantity, formatSumPrice, formatSumQuantity } from '@/views/wms/utils/format'
|
||||
|
||||
/** WMS 移库单详情 */
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="AREA_ENABLE" label="来源库区" min-width="140" prop="sourceAreaName" />
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column align="right" label="可用库存" width="120">
|
||||
<template #default="{ row }">{{ formatQuantity(row.availableQuantity) || '-' }}</template>
|
||||
</el-table-column>
|
||||
|
|
@ -170,7 +170,7 @@ import { MovementOrderDetailVO } from '@/api/wms/order/movement/detail'
|
|||
import InventorySelect, { InventorySelectRow } from '@/views/wms/inventory/components/InventorySelect.vue'
|
||||
import WarehouseAreaSelect from '@/views/wms/md/warehouse/components/WarehouseAreaSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { OrderStatusEnum, OrderUpdateStatusList } from '@/views/wms/utils/constants'
|
||||
import { formatQuantity, PRICE_PRECISION, QUANTITY_PRECISION, sumPrice, sumQuantity } from '@/views/wms/utils/format'
|
||||
import { generateOrderNo } from '@/views/wms/utils/order'
|
||||
|
|
@ -250,7 +250,6 @@ const buildDetail = (inventory: InventorySelectRow): MovementOrderDetailVO => ({
|
|||
skuId: inventory.skuId,
|
||||
skuCode: inventory.skuCode,
|
||||
skuName: inventory.skuName,
|
||||
inventoryDetailId: inventory.inventoryDetailId,
|
||||
sourceWarehouseId: inventory.warehouseId,
|
||||
sourceWarehouseName: inventory.warehouseName,
|
||||
sourceAreaId: inventory.areaId,
|
||||
|
|
@ -282,7 +281,6 @@ const handleSelectInventory = (inventories: InventorySelectRow[]) => {
|
|||
/** 判断库存是否已选择 */
|
||||
const isInventorySelected = (inventory: InventorySelectRow) =>
|
||||
(formData.value.details || []).some((detail) => {
|
||||
if (BATCH_ENABLE) return detail.inventoryDetailId === inventory.inventoryDetailId
|
||||
return (
|
||||
detail.skuId === inventory.skuId &&
|
||||
detail.sourceWarehouseId === inventory.warehouseId &&
|
||||
|
|
|
|||
|
|
@ -32,12 +32,76 @@
|
|||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量" prop="totalQuantityMin">
|
||||
<div class="flex w-240px items-center gap-8px">
|
||||
<el-input-number
|
||||
v-model="queryParams.totalQuantityMin"
|
||||
:controls="false"
|
||||
:min="0"
|
||||
:precision="QUANTITY_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最小值"
|
||||
/>
|
||||
<span>至</span>
|
||||
<el-input-number
|
||||
v-model="queryParams.totalQuantityMax"
|
||||
:controls="false"
|
||||
:min="0"
|
||||
:precision="QUANTITY_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最大值"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="总金额" prop="totalAmountMin">
|
||||
<div class="flex w-240px items-center gap-8px">
|
||||
<el-input-number
|
||||
v-model="queryParams.totalAmountMin"
|
||||
:controls="false"
|
||||
:min="0"
|
||||
:precision="PRICE_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最小值"
|
||||
/>
|
||||
<span>至</span>
|
||||
<el-input-number
|
||||
v-model="queryParams.totalAmountMax"
|
||||
:controls="false"
|
||||
:min="0"
|
||||
:precision="PRICE_PRECISION"
|
||||
class="!w-105px"
|
||||
placeholder="最大值"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建用户" prop="creator">
|
||||
<UserSelectV2 v-model="queryParams.creator" class="!w-240px" placeholder="请选择创建用户" />
|
||||
</el-form-item>
|
||||
<el-form-item label="更新用户" prop="updater">
|
||||
<UserSelectV2 v-model="queryParams.updater" class="!w-240px" placeholder="请选择更新用户" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.createTime"
|
||||
:shortcuts="defaultShortcuts"
|
||||
class="!w-240px"
|
||||
end-placeholder="结束时间"
|
||||
start-placeholder="开始时间"
|
||||
type="datetimerange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="updateTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.updateTime"
|
||||
:shortcuts="defaultShortcuts"
|
||||
class="!w-240px"
|
||||
end-placeholder="结束时间"
|
||||
start-placeholder="开始时间"
|
||||
type="datetimerange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery">
|
||||
<Icon class="mr-5px" icon="ep:search" />
|
||||
|
|
@ -47,6 +111,22 @@
|
|||
<Icon class="mr-5px" icon="ep:refresh" />
|
||||
重置
|
||||
</el-button>
|
||||
<el-popover popper-class="wms-movement-order-table-setting-popover" trigger="click" width="520">
|
||||
<template #reference>
|
||||
<el-button>
|
||||
<Icon class="mr-5px" icon="ep:setting" />
|
||||
表格设置
|
||||
</el-button>
|
||||
</template>
|
||||
<el-checkbox-group
|
||||
v-model="checkedTableColumns"
|
||||
class="wms-movement-order-table-setting grid grid-cols-3 gap-y-14px rounded p-16px"
|
||||
>
|
||||
<el-checkbox v-for="column in tableColumnOptions" :key="column.value" :label="column.value">
|
||||
{{ column.label }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-popover>
|
||||
<el-button v-hasPermi="['wms:movement-order:create']" plain type="primary" @click="openForm('create')">
|
||||
<Icon class="mr-5px" icon="ep:plus" />
|
||||
新增
|
||||
|
|
@ -68,6 +148,7 @@
|
|||
<ContentWrap>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:cell-class-name="'wms-movement-order-cell'"
|
||||
:data="list"
|
||||
:show-overflow-tooltip="true"
|
||||
border
|
||||
|
|
@ -88,7 +169,7 @@
|
|||
<div v-if="detail.skuCode" class="text-12px text-gray-500">规格编号:{{ detail.skuCode }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column align="right" label="移库数量" width="120">
|
||||
<template #default="{ row: detail }">{{ formatQuantity(detail.quantity) }}</template>
|
||||
</el-table-column>
|
||||
|
|
@ -99,18 +180,28 @@
|
|||
</el-table>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="left" label="单号" width="210">
|
||||
<el-table-column v-if="isTableColumnVisible('no')" fixed="left" label="单号" width="210">
|
||||
<template #default="{ row }">
|
||||
单号:
|
||||
<el-button link type="primary" @click="openDetail(row.id)">{{ row.no }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" fixed="left" label="移库状态" width="110">
|
||||
<el-table-column
|
||||
v-if="isTableColumnVisible('status')"
|
||||
align="center"
|
||||
fixed="left"
|
||||
label="移库状态"
|
||||
width="110"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<dict-tag :type="DICT_TYPE.WMS_ORDER_STATUS" :value="row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="AREA_ENABLE ? '来源仓库/库区' : '来源仓库'" min-width="180">
|
||||
<el-table-column
|
||||
v-if="isTableColumnVisible('sourceWarehouse')"
|
||||
:label="AREA_ENABLE ? '来源仓库/库区' : '来源仓库'"
|
||||
min-width="180"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<template v-if="AREA_ENABLE">
|
||||
<div>仓库:{{ row.sourceWarehouseName || '-' }}</div>
|
||||
|
|
@ -119,7 +210,11 @@
|
|||
<template v-else>{{ row.sourceWarehouseName || '-' }}</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="AREA_ENABLE ? '目标仓库/库区' : '目标仓库'" min-width="180">
|
||||
<el-table-column
|
||||
v-if="isTableColumnVisible('targetWarehouse')"
|
||||
:label="AREA_ENABLE ? '目标仓库/库区' : '目标仓库'"
|
||||
min-width="180"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<template v-if="AREA_ENABLE">
|
||||
<div>仓库:{{ row.targetWarehouseName || '-' }}</div>
|
||||
|
|
@ -128,7 +223,7 @@
|
|||
<template v-else>{{ row.targetWarehouseName || '-' }}</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="总数量/总金额(元)" min-width="180">
|
||||
<el-table-column v-if="isTableColumnVisible('quantityAmount')" label="总数量/总金额(元)" min-width="180">
|
||||
<template #default="{ row }">
|
||||
<div class="flex items-center justify-between">
|
||||
<span>数量:</span>
|
||||
|
|
@ -140,13 +235,13 @@
|
|||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作信息" min-width="280">
|
||||
<el-table-column v-if="isTableColumnVisible('operateInfo')" label="操作信息" min-width="280">
|
||||
<template #default="{ row }">
|
||||
<div>创建:{{ formatNullableDate(row.createTime) }} / {{ row.creatorName || row.creator || '-' }}</div>
|
||||
<div>更新:{{ formatNullableDate(row.updateTime) }} / {{ row.updaterName || row.updater || '-' }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" min-width="160" prop="remark" />
|
||||
<el-table-column v-if="isTableColumnVisible('remark')" label="备注" min-width="160" prop="remark" />
|
||||
<el-table-column align="center" fixed="right" label="操作" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-tooltip :content="getUpdateTip(row.status)" :disabled="canUpdate(row.status)" placement="top">
|
||||
|
|
@ -191,9 +286,9 @@ import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|||
import { MovementOrderApi, MovementOrderVO } from '@/api/wms/order/movement'
|
||||
import { MovementOrderDetailVO } from '@/api/wms/order/movement/detail'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { OrderDeleteStatusList, OrderStatusEnum, OrderUpdateStatusList } from '@/views/wms/utils/constants'
|
||||
import { formatPrice, formatQuantity } from '@/views/wms/utils/format'
|
||||
import { formatPrice, formatQuantity, PRICE_PRECISION, QUANTITY_PRECISION } from '@/views/wms/utils/format'
|
||||
import UserSelectV2 from '@/views/system/user/components/UserSelectV2.vue'
|
||||
import MovementOrderDetail from './MovementOrderDetail.vue'
|
||||
import MovementOrderForm from './MovementOrderForm.vue'
|
||||
|
|
@ -205,6 +300,35 @@ defineOptions({ name: 'WmsMovementOrder' })
|
|||
const message = useMessage()
|
||||
const { t } = useI18n()
|
||||
|
||||
type TableColumnKey =
|
||||
| 'no'
|
||||
| 'status'
|
||||
| 'sourceWarehouse'
|
||||
| 'targetWarehouse'
|
||||
| 'quantityAmount'
|
||||
| 'operateInfo'
|
||||
| 'remark'
|
||||
|
||||
const tableColumnOptions: Array<{ label: string; value: TableColumnKey }> = [
|
||||
{ label: '单号', value: 'no' },
|
||||
{ label: '移库状态', value: 'status' },
|
||||
{ label: '来源仓库', value: 'sourceWarehouse' },
|
||||
{ label: '目标仓库', value: 'targetWarehouse' },
|
||||
{ label: '数量/金额(元)', value: 'quantityAmount' },
|
||||
{ label: '操作信息', value: 'operateInfo' },
|
||||
{ label: '备注', value: 'remark' }
|
||||
]
|
||||
const checkedTableColumns = ref<TableColumnKey[]>([
|
||||
'no',
|
||||
'status',
|
||||
'sourceWarehouse',
|
||||
'targetWarehouse',
|
||||
'quantityAmount',
|
||||
'operateInfo',
|
||||
'remark'
|
||||
])
|
||||
const isTableColumnVisible = (column: TableColumnKey) => checkedTableColumns.value.includes(column)
|
||||
|
||||
const loading = ref(true)
|
||||
const list = ref<MovementOrderVO[]>([])
|
||||
const total = ref(0)
|
||||
|
|
@ -216,8 +340,14 @@ const getDefaultQueryParams = () => ({
|
|||
sourceWarehouseId: undefined as number | undefined,
|
||||
targetWarehouseId: undefined as number | undefined,
|
||||
orderDate: undefined as string[] | undefined,
|
||||
totalQuantityMin: undefined as number | undefined,
|
||||
totalQuantityMax: undefined as number | undefined,
|
||||
totalAmountMin: undefined as number | undefined,
|
||||
totalAmountMax: undefined as number | undefined,
|
||||
creator: undefined as number | undefined,
|
||||
updater: undefined as number | undefined
|
||||
updater: undefined as number | undefined,
|
||||
createTime: undefined as string[] | undefined,
|
||||
updateTime: undefined as string[] | undefined
|
||||
})
|
||||
const queryParams = reactive(getDefaultQueryParams())
|
||||
const queryFormRef = ref()
|
||||
|
|
@ -285,3 +415,27 @@ const handleExport = async () => {
|
|||
|
||||
onMounted(() => getList())
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
:deep(.wms-movement-order-cell) {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
:global(.wms-movement-order-table-setting-popover) {
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
:global(.wms-movement-order-table-setting) {
|
||||
background-color: var(--el-fill-color-light);
|
||||
}
|
||||
|
||||
:global(.wms-movement-order-table-setting .el-checkbox) {
|
||||
height: 28px;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
:global(.wms-movement-order-table-setting .el-checkbox__label) {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -75,13 +75,13 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="AREA_ENABLE" label="库区" min-width="140" prop="areaName" />
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column v-if="BATCH_ENABLE" label="生产日期" width="140">
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="生产日期" width="140">
|
||||
<template #default="scope">
|
||||
{{ formatNullableDate(scope.row.productionDate, 'YYYY-MM-DD') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="过期日期" width="140">
|
||||
<el-table-column label="过期日期" width="140">
|
||||
<template #default="scope">
|
||||
{{ formatNullableDate(scope.row.expirationDate, 'YYYY-MM-DD') }}
|
||||
</template>
|
||||
|
|
@ -112,7 +112,7 @@ import { formatNullableDate } from '@/utils/formatTime'
|
|||
import { DICT_TYPE } from '@/utils/dict'
|
||||
import { ReceiptOrderApi, ReceiptOrderVO } from '@/api/wms/order/receipt'
|
||||
import { ReceiptOrderDetailVO } from '@/api/wms/order/receipt/detail'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import {
|
||||
formatPrice,
|
||||
formatQuantity,
|
||||
|
|
|
|||
|
|
@ -126,12 +126,12 @@
|
|||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="160">
|
||||
<el-table-column label="批号" min-width="160">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.batchNo" maxlength="64" placeholder="请输入批号" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="生产日期" width="180">
|
||||
<el-table-column label="生产日期" width="180">
|
||||
<template #default="scope">
|
||||
<el-date-picker
|
||||
v-model="scope.row.productionDate"
|
||||
|
|
@ -142,7 +142,7 @@
|
|||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="过期日期" width="180">
|
||||
<el-table-column label="过期日期" width="180">
|
||||
<template #default="scope">
|
||||
<el-date-picker
|
||||
v-model="scope.row.expirationDate"
|
||||
|
|
@ -234,7 +234,7 @@ import ItemSkuSelect from '@/views/wms/md/item/sku/components/ItemSkuSelect.vue'
|
|||
import MerchantSelect from '@/views/wms/md/merchant/components/MerchantSelect.vue'
|
||||
import WarehouseAreaSelect from '@/views/wms/md/warehouse/components/WarehouseAreaSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { OrderStatusEnum, OrderUpdateStatusList } from '@/views/wms/utils/constants'
|
||||
import {
|
||||
formatQuantity,
|
||||
|
|
|
|||
|
|
@ -31,19 +31,16 @@
|
|||
库区
|
||||
</th>
|
||||
<th
|
||||
v-if="BATCH_ENABLE"
|
||||
class="border border-solid border-#dcdfe6 bg-#f5f7fa p-8px text-left"
|
||||
>
|
||||
批号
|
||||
</th>
|
||||
<th
|
||||
v-if="BATCH_ENABLE"
|
||||
class="border border-solid border-#dcdfe6 bg-#f5f7fa p-8px text-left"
|
||||
>
|
||||
生产日期
|
||||
</th>
|
||||
<th
|
||||
v-if="BATCH_ENABLE"
|
||||
class="border border-solid border-#dcdfe6 bg-#f5f7fa p-8px text-left"
|
||||
>
|
||||
过期日期
|
||||
|
|
@ -66,13 +63,13 @@
|
|||
<td v-if="AREA_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ detail.areaName || '-' }}
|
||||
</td>
|
||||
<td v-if="BATCH_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
<td class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ detail.batchNo || '-' }}
|
||||
</td>
|
||||
<td v-if="BATCH_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
<td class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ formatNullableDate(detail.productionDate, 'YYYY-MM-DD') }}
|
||||
</td>
|
||||
<td v-if="BATCH_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
<td class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ formatNullableDate(detail.expirationDate, 'YYYY-MM-DD') }}
|
||||
</td>
|
||||
<td class="border border-solid border-#dcdfe6 p-8px text-right">
|
||||
|
|
@ -101,7 +98,7 @@
|
|||
import { formatNullableDate } from '@/utils/formatTime'
|
||||
import { DICT_TYPE, getDictLabel } from '@/utils/dict'
|
||||
import { ReceiptOrderApi, ReceiptOrderVO } from '@/api/wms/order/receipt'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { formatPrice, formatQuantity } from '@/views/wms/utils/format'
|
||||
|
||||
/** WMS 入库单打印 */
|
||||
|
|
@ -109,7 +106,7 @@ defineOptions({ name: 'WmsReceiptOrderPrint' })
|
|||
|
||||
const printData = ref<ReceiptOrderVO>({}) // 打印数据
|
||||
const printButtonRef = ref<HTMLButtonElement>() // 打印按钮
|
||||
const tableColumnCount = computed(() => 5 + (AREA_ENABLE ? 1 : 0) + (BATCH_ENABLE ? 3 : 0))
|
||||
const tableColumnCount = computed(() => 8 + (AREA_ENABLE ? 1 : 0))
|
||||
const printObj = ref({
|
||||
id: 'wmsReceiptOrderPrint',
|
||||
popTitle: ' ',
|
||||
|
|
|
|||
|
|
@ -244,14 +244,8 @@
|
|||
min-width="140"
|
||||
prop="areaName"
|
||||
/>
|
||||
<el-table-column
|
||||
v-if="BATCH_ENABLE"
|
||||
align="center"
|
||||
label="批号"
|
||||
min-width="140"
|
||||
prop="batchNo"
|
||||
/>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="生产日期/过期日期" min-width="180">
|
||||
<el-table-column align="center" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="生产日期/过期日期" min-width="180">
|
||||
<template #default="detailScope">
|
||||
<div v-if="detailScope.row.productionDate">
|
||||
生产日期:{{ formatNullableDate(detailScope.row.productionDate, 'YYYY-MM-DD') }}
|
||||
|
|
@ -428,7 +422,7 @@ import { ReceiptOrderApi, ReceiptOrderVO } from '@/api/wms/order/receipt'
|
|||
import { ReceiptOrderDetailVO } from '@/api/wms/order/receipt/detail'
|
||||
import MerchantSelect from '@/views/wms/md/merchant/components/MerchantSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import {
|
||||
OrderDeleteStatusList,
|
||||
OrderStatusEnum,
|
||||
|
|
|
|||
|
|
@ -75,13 +75,13 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="AREA_ENABLE" label="库区" min-width="140" prop="areaName" />
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column v-if="BATCH_ENABLE" label="生产日期" width="140">
|
||||
<el-table-column label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="生产日期" width="140">
|
||||
<template #default="scope">
|
||||
{{ formatNullableDate(scope.row.productionDate, 'YYYY-MM-DD') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="过期日期" width="140">
|
||||
<el-table-column label="过期日期" width="140">
|
||||
<template #default="scope">
|
||||
{{ formatNullableDate(scope.row.expirationDate, 'YYYY-MM-DD') }}
|
||||
</template>
|
||||
|
|
@ -112,7 +112,7 @@ import { formatNullableDate } from '@/utils/formatTime'
|
|||
import { DICT_TYPE } from '@/utils/dict'
|
||||
import { ShipmentOrderApi, ShipmentOrderVO } from '@/api/wms/order/shipment'
|
||||
import { ShipmentOrderDetailVO } from '@/api/wms/order/shipment/detail'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import {
|
||||
formatPrice,
|
||||
formatQuantity,
|
||||
|
|
|
|||
|
|
@ -121,17 +121,17 @@
|
|||
{{ scope.row.areaName || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="批号" min-width="160">
|
||||
<el-table-column label="批号" min-width="160">
|
||||
<template #default="scope">
|
||||
{{ scope.row.batchNo || '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="生产日期" width="180">
|
||||
<el-table-column label="生产日期" width="180">
|
||||
<template #default="scope">
|
||||
{{ formatNullableDate(scope.row.productionDate, 'YYYY-MM-DD') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="过期日期" width="180">
|
||||
<el-table-column label="过期日期" width="180">
|
||||
<template #default="scope">
|
||||
{{ formatNullableDate(scope.row.expirationDate, 'YYYY-MM-DD') }}
|
||||
</template>
|
||||
|
|
@ -229,7 +229,7 @@ import MerchantSelect from '@/views/wms/md/merchant/components/MerchantSelect.vu
|
|||
import WarehouseAreaSelect from '@/views/wms/md/warehouse/components/WarehouseAreaSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { formatNullableDate } from '@/utils/formatTime'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { OrderStatusEnum, OrderUpdateStatusList } from '@/views/wms/utils/constants'
|
||||
import {
|
||||
formatQuantity,
|
||||
|
|
@ -320,7 +320,6 @@ const buildDetail = (inventory: InventorySelectRow): ShipmentOrderDetailVO => ({
|
|||
skuId: inventory.skuId,
|
||||
skuCode: inventory.skuCode,
|
||||
skuName: inventory.skuName,
|
||||
inventoryDetailId: inventory.inventoryDetailId,
|
||||
warehouseId: inventory.warehouseId,
|
||||
warehouseName: inventory.warehouseName,
|
||||
areaId: inventory.areaId,
|
||||
|
|
@ -357,9 +356,6 @@ const handleSelectInventory = (inventories: InventorySelectRow[]) => {
|
|||
/** 判断库存是否已选择 */
|
||||
const isInventorySelected = (inventory: InventorySelectRow) => {
|
||||
return (formData.value.details || []).some((detail) => {
|
||||
if (BATCH_ENABLE) {
|
||||
return detail.inventoryDetailId === inventory.inventoryDetailId
|
||||
}
|
||||
return (
|
||||
detail.skuId === inventory.skuId &&
|
||||
detail.warehouseId === inventory.warehouseId &&
|
||||
|
|
|
|||
|
|
@ -31,19 +31,16 @@
|
|||
库区
|
||||
</th>
|
||||
<th
|
||||
v-if="BATCH_ENABLE"
|
||||
class="border border-solid border-#dcdfe6 bg-#f5f7fa p-8px text-left"
|
||||
>
|
||||
批号
|
||||
</th>
|
||||
<th
|
||||
v-if="BATCH_ENABLE"
|
||||
class="border border-solid border-#dcdfe6 bg-#f5f7fa p-8px text-left"
|
||||
>
|
||||
生产日期
|
||||
</th>
|
||||
<th
|
||||
v-if="BATCH_ENABLE"
|
||||
class="border border-solid border-#dcdfe6 bg-#f5f7fa p-8px text-left"
|
||||
>
|
||||
过期日期
|
||||
|
|
@ -66,13 +63,13 @@
|
|||
<td v-if="AREA_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ detail.areaName || '-' }}
|
||||
</td>
|
||||
<td v-if="BATCH_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
<td class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ detail.batchNo || '-' }}
|
||||
</td>
|
||||
<td v-if="BATCH_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
<td class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ formatNullableDate(detail.productionDate, 'YYYY-MM-DD') }}
|
||||
</td>
|
||||
<td v-if="BATCH_ENABLE" class="border border-solid border-#dcdfe6 p-8px">
|
||||
<td class="border border-solid border-#dcdfe6 p-8px">
|
||||
{{ formatNullableDate(detail.expirationDate, 'YYYY-MM-DD') }}
|
||||
</td>
|
||||
<td class="border border-solid border-#dcdfe6 p-8px text-right">
|
||||
|
|
@ -101,7 +98,7 @@
|
|||
import { formatNullableDate } from '@/utils/formatTime'
|
||||
import { DICT_TYPE, getDictLabel } from '@/utils/dict'
|
||||
import { ShipmentOrderApi, ShipmentOrderVO } from '@/api/wms/order/shipment'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import { formatPrice, formatQuantity } from '@/views/wms/utils/format'
|
||||
|
||||
/** WMS 出库单打印 */
|
||||
|
|
@ -109,7 +106,7 @@ defineOptions({ name: 'WmsShipmentOrderPrint' })
|
|||
|
||||
const printData = ref<ShipmentOrderVO>({}) // 打印数据
|
||||
const printButtonRef = ref<HTMLButtonElement>() // 打印按钮
|
||||
const tableColumnCount = computed(() => 5 + (AREA_ENABLE ? 1 : 0) + (BATCH_ENABLE ? 3 : 0))
|
||||
const tableColumnCount = computed(() => 8 + (AREA_ENABLE ? 1 : 0))
|
||||
const printObj = ref({
|
||||
id: 'wmsShipmentOrderPrint',
|
||||
popTitle: ' ',
|
||||
|
|
|
|||
|
|
@ -244,14 +244,8 @@
|
|||
min-width="140"
|
||||
prop="areaName"
|
||||
/>
|
||||
<el-table-column
|
||||
v-if="BATCH_ENABLE"
|
||||
align="center"
|
||||
label="批号"
|
||||
min-width="140"
|
||||
prop="batchNo"
|
||||
/>
|
||||
<el-table-column v-if="BATCH_ENABLE" label="生产日期/过期日期" min-width="180">
|
||||
<el-table-column align="center" label="批号" min-width="140" prop="batchNo" />
|
||||
<el-table-column label="生产日期/过期日期" min-width="180">
|
||||
<template #default="detailScope">
|
||||
<div v-if="detailScope.row.productionDate">
|
||||
生产日期:{{ formatNullableDate(detailScope.row.productionDate, 'YYYY-MM-DD') }}
|
||||
|
|
@ -428,7 +422,7 @@ import { ShipmentOrderApi, ShipmentOrderVO } from '@/api/wms/order/shipment'
|
|||
import { ShipmentOrderDetailVO } from '@/api/wms/order/shipment/detail'
|
||||
import MerchantSelect from '@/views/wms/md/merchant/components/MerchantSelect.vue'
|
||||
import WarehouseSelect from '@/views/wms/md/warehouse/components/WarehouseSelect.vue'
|
||||
import { AREA_ENABLE, BATCH_ENABLE } from '@/views/wms/utils/config'
|
||||
import { AREA_ENABLE } from '@/views/wms/utils/config'
|
||||
import {
|
||||
OrderDeleteStatusList,
|
||||
OrderStatusEnum,
|
||||
|
|
|
|||
|
|
@ -8,10 +8,3 @@
|
|||
|
||||
/** 是否启用库区模式(对齐 yudao.wms.area-enable) */
|
||||
export const AREA_ENABLE = true
|
||||
|
||||
/**
|
||||
* 是否启用批次/效期/库存明细模式(对齐 yudao.wms.batch-enable)
|
||||
*
|
||||
* 依赖 AREA_ENABLE = true
|
||||
*/
|
||||
export const BATCH_ENABLE = true
|
||||
|
|
|
|||
Loading…
Reference in New Issue