Compare commits

..

No commits in common. "1bcbc1c4cb07f864b540daa689901d5cc5c53631" and "572a7aba84d56ab24f3d7b79f20c83e0c018654f" have entirely different histories.

4 changed files with 129 additions and 204 deletions

View File

@ -8,91 +8,39 @@
v-model="formData.warehouseName"
placeholder="仓库名称"/>
</ElFormItem>
</template>
<template #highFormItem="formData">
<ElFormItem label="仓库名称">
<ElFormItem label="位置">
<ElInput
v-model="formData.warehouseName"
placeholder="仓库名称"/>
</ElFormItem>
<ElFormItem label="仓库类型">
<ADict v-model="formData.type" dict-key="warehouse_type" placeholder="请选择仓库类型"/>
</ElFormItem>
<ElFormItem label="站点">
<ElSelect v-model="formData.stationId" placeholder="请选择站点" clearable filterable>
<ElOption
v-for="item in stationOptions"
:key="item.id"
:label="item.stationName"
:value="item.id"/>
</ElSelect>
v-model="formData.location"
placeholder="位置"/>
</ElFormItem>
</template>
<template #columns>
<ElTableColumn label="Id" prop="id"/>
<ElTableColumn label="仓库名称" prop="warehouseName"/>
<ElTableColumn label="仓库类型" prop="type">
<template #default="{ row }">
{{ getWarehouseTypeText(row.type) }}
</template>
</ElTableColumn>
<ElTableColumn label="站点名称" prop="stationName"/>
<ElTableColumn label="位置" prop="location"/>
<ElTableColumn label="最大容量" prop="maxCapacity"/>
<!-- <ElTableColumn label="创建人 Id sys_user.id" prop="creatorId"/>
<ElTableColumn label="修改人 Idsys_user.id" prop="modifierId"/> -->
<ElTableColumn label="创建时间" prop="createTime"/>
<ElTableColumn label="操作" width="120">
<template #default="{ row }">
<ElButton type="primary" link @click="openDetail(row)"></ElButton>
<ElButton type="primary" link @click="warehouseFormIns?.open(row)"></ElButton>
<ElButton type="danger" link @click="handleDelete(row)"></ElButton>
</template>
</ElTableColumn>
<ElTableColumn label="修改时间" prop="modifyTime"/>
<!-- <ElTableColumn label="是否删除; 0-->未删除、1-->已删除" prop="deleted"/> -->
</template>
<WarehouseForm ref="warehouseForm" :research="research"/>
<WarehouseDetail ref="warehouseDetail"/>
</ATablePage>
</template>
<script lang="ts" setup>
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
import WarehouseForm from '@/pages/wh/warehouse/WarehouseForm.vue'
import WarehouseDetail from '@/pages/wh/warehouse/WarehouseDetail.vue'
import StationApi from '@/pages/cst/station/station-api.ts'
import ADict from '@/components/a-dict/ADict.vue'
import DictApi from '@/pages/sys/dict/dict-api.ts'
import ATablePage, {
type ATablePageInstance,
buildTablePageProps,
} from '@/components/a-page/a-table-page/ATablePage.tsx'
import { ElMessageBox } from 'element-plus'
//
const warehouseTypeOptions = ref<{ id: string; val: string; txt: string }[]>([])
//
function getWarehouseTypeText(type?: string) {
const found = warehouseTypeOptions.value.find(item => item.val === type)
return found ? found.txt : '-'
}
//
DictApi.obtainDictData({ dictKey: 'warehouse_type' }).then(res => {
warehouseTypeOptions.value = res.data || []
})
//
const stationOptions = ref<{ id: string; stationName: string }[]>([])
//
StationApi.paging({ current: 1, size: 9999 } as any).then(res => {
stationOptions.value = res.data?.records || []
})
const warehouseFormIns = useTemplateRef<InstanceType<typeof WarehouseForm>>('warehouseForm')
const warehouseDetailIns = useTemplateRef<InstanceType<typeof WarehouseDetail>>('warehouseDetail')
const tablePageIns = useTemplateRef<ATablePageInstance>('tablePage')
const tablePageProps = buildTablePageProps<WarehouseTypes.SearchWarehouseParam, WarehouseTypes.SearchWarehouseResult>({
pageLayout: {
enableHighForm: true,
enableHighForm: false,
},
searchForm: {
paging: WarehouseApi.paging,
@ -110,7 +58,32 @@ const tablePageProps = buildTablePageProps<WarehouseTypes.SearchWarehouseParam,
},
table: {
actionColumn: {
// columns
tableActions: [
{
tooltip: '编辑',
icon: 'Edit',
type: 'success',
action({row}) {
warehouseFormIns.value?.open(row)
},
},
{
icon: 'Delete',
loading: false,
type: 'danger',
tooltip: '删除',
confirm: {
title: '是否删除当前数据',
},
action({row}) {
return WarehouseApi.del([ row.id! ])
.then(() => {
ElMessage.success('删除成功')
return true
})
},
},
],
},
},
})
@ -119,23 +92,4 @@ function research() {
tablePageIns.value?.doSearch()
}
//
function openDetail(row: WarehouseTypes.SearchWarehouseResult) {
warehouseDetailIns.value?.open(row)
}
//
function handleDelete(row: WarehouseTypes.SearchWarehouseResult) {
ElMessageBox.confirm('是否删除当前数据', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
return WarehouseApi.del([ row.id! ])
.then(() => {
ElMessage.success('删除成功')
research()
})
}).catch(() => {})
}
</script>

View File

@ -1,32 +1,32 @@
<template>
<ElDialog v-model="showDialog"
destroy-on-close
width="700px"
width="fit-content"
@close="dialogCloseHandler">
<ElDescriptions title="仓库信息" border :column="2">
<ElDescriptionsItem label="仓库名称" :span="1">
{{ detailData.warehouseName || '-' }}
<ElDescriptions title="仓库信息" border>
<ElDescriptionsItem label="Id" prop="id">
{{ detailData.id }}
</ElDescriptionsItem>
<ElDescriptionsItem label="仓库类型" :span="1">
{{ getWarehouseTypeText(detailData.type) }}
<ElDescriptionsItem label="仓库名称" prop="warehouseName">
{{ detailData.warehouseName }}
</ElDescriptionsItem>
<ElDescriptionsItem label="站点名称" :span="1">
{{ detailData.stationName || '-' }}
<ElDescriptionsItem label="位置" prop="location">
{{ detailData.location }}
</ElDescriptionsItem>
<ElDescriptionsItem label="位置" :span="1">
{{ detailData.location || '-' }}
<ElDescriptionsItem label="创建人 Id sys_user.id" prop="creatorId">
{{ detailData.creatorId }}
</ElDescriptionsItem>
<ElDescriptionsItem label="最大容量" :span="1">
{{ detailData.maxCapacity ?? '-' }}
<ElDescriptionsItem label="修改人 Idsys_user.id" prop="modifierId">
{{ detailData.modifierId }}
</ElDescriptionsItem>
<ElDescriptionsItem label="创建时间" :span="1">
{{ detailData.createTime || '-' }}
<ElDescriptionsItem label="创建时间" prop="createTime">
{{ detailData.createTime }}
</ElDescriptionsItem>
<ElDescriptionsItem label="修改时间" :span="1">
{{ detailData.modifyTime || '-' }}
<ElDescriptionsItem label="修改时间" prop="modifyTime">
{{ detailData.modifyTime }}
</ElDescriptionsItem>
<ElDescriptionsItem label="备注" :span="2">
{{ detailData.remark || '-' }}
<ElDescriptionsItem label="是否删除; 0-->未删除、1-->已删除" prop="deleted">
{{ detailData.deleted }}
</ElDescriptionsItem>
</ElDescriptions>
<template #footer>
@ -37,23 +37,8 @@
<script lang="ts" setup>
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
import DictApi from '@/pages/sys/dict/dict-api.ts'
import Utils from '@/common/utils'
//
const warehouseTypeOptions = ref<{ id: string; val: string; txt: string }[]>([])
//
function getWarehouseTypeText(type?: string) {
const found = warehouseTypeOptions.value.find(item => item.val === type)
return found ? found.txt : '-'
}
//
DictApi.obtainDictData({ dictKey: 'warehouse_type' }).then(res => {
warehouseTypeOptions.value = res.data || []
})
const showDialog = ref(false)
const detailData = Utils.resetAble(reactive<WarehouseTypes.SearchWarehouseResult>({}))
@ -74,4 +59,5 @@ defineExpose({
</script>
<style lang="stylus" scoped>
</style>

View File

@ -4,29 +4,41 @@
v-bind="formPanelProps">
<template #default="formData">
<div class="form-items">
<ElFormItem label="Id" prop="id">
<ElInput v-model="formData.id" placeholder="Id"/>
</ElFormItem>
<ElFormItem label="仓库名称" prop="warehouseName">
<ElInput v-model="formData.warehouseName" placeholder="请输入仓库名称"/>
<ElInput v-model="formData.warehouseName" placeholder="仓库名称"/>
</ElFormItem>
<ElFormItem label="仓库类型" prop="type">
<ADict v-model="formData.type" dict-key="warehouse_type" placeholder="请选择仓库类型"/>
<ElFormItem label="仓库类型raw_material-原料库finished_product-成品库" prop="type">
<ElInput v-model="formData.type" placeholder="仓库类型raw_material-原料库finished_product-成品库"/>
</ElFormItem>
<ElFormItem label="站点名称" prop="stationId">
<ElSelect v-model="formData.stationId" placeholder="请选择站点" filterable>
<ElOption
v-for="item in stationOptions"
:key="item.id"
:label="item.stationName"
:value="item.id"/>
</ElSelect>
<ElFormItem label="所属站点 Id关联站点表主键" prop="stationId">
<ElInput v-model="formData.stationId" placeholder="所属站点 Id关联站点表主键"/>
</ElFormItem>
<ElFormItem label="位置" prop="location">
<ElInput v-model="formData.location" placeholder="请输入仓库位置"/>
<ElInput v-model="formData.location" placeholder="位置"/>
</ElFormItem>
<ElFormItem label="最大容量" prop="maxCapacity">
<ElInputNumber v-model="formData.maxCapacity" :min="0" placeholder="请输入最大容量" style="width: 100%"/>
<ElFormItem label="最大容量单位m³" prop="maxCapacity">
<ElInput v-model="formData.maxCapacity" placeholder="最大容量单位m³"/>
</ElFormItem>
<ElFormItem label="备注" prop="remark" class="full-width">
<ElInput v-model="formData.remark" type="textarea" :rows="3" placeholder="请输入备注"/>
<ElFormItem label="备注" prop="remark">
<ElInput v-model="formData.remark" placeholder="备注"/>
</ElFormItem>
<ElFormItem label="创建人 Id sys_user.id" prop="creatorId">
<ElInput v-model="formData.creatorId" placeholder="创建人 Id sys_user.id"/>
</ElFormItem>
<ElFormItem label="修改人 Idsys_user.id" prop="modifierId">
<ElInput v-model="formData.modifierId" placeholder="修改人 Idsys_user.id"/>
</ElFormItem>
<ElFormItem label="创建时间" prop="createTime">
<ElInput v-model="formData.createTime" placeholder="创建时间"/>
</ElFormItem>
<ElFormItem label="修改时间" prop="modifyTime">
<ElInput v-model="formData.modifyTime" placeholder="修改时间"/>
</ElFormItem>
<ElFormItem label="是否删除; 0-->未删除、1-->已删除" prop="deleted">
<ElInput v-model="formData.deleted" placeholder="是否删除; 0-->未删除、1-->已删除"/>
</ElFormItem>
</div>
</template>
@ -35,8 +47,6 @@
<script lang="ts" setup>
import WarehouseApi from '@/pages/wh/warehouse/warehouse-api.ts'
import StationApi from '@/pages/cst/station/station-api.ts'
import ADict from '@/components/a-dict/ADict.vue'
import AFormPanel, {
type AFormPanelInstance,
buildFormPanelProps,
@ -49,25 +59,13 @@ const props = withDefaults(defineProps<{
research: () => {
},
})
//
const stationOptions = ref<{ id: string; stationName: string }[]>([])
//
StationApi.paging({ current: 1, size: 9999 } as any).then(res => {
stationOptions.value = res.data?.records || []
})
const formPanelIns = useTemplateRef<AFormPanelInstance>('formPanel')
const status = ref<'add' | 'modify'>('add')
const formPanelProps = buildFormPanelProps<WarehouseTypes.SearchWarehouseResult>({
detailsLoader(id?: string) {
if (Strings.isBlank(id)) {
status.value = 'add'
return Promise.resolve({
maxCapacity: 0,
} as WarehouseTypes.SearchWarehouseResult)
return Promise.resolve()
} else {
status.value = 'modify'
return WarehouseApi
@ -86,33 +84,34 @@ const formPanelProps = buildFormPanelProps<WarehouseTypes.SearchWarehouseResult>
.then(props.research)
}
},
rules: () => {
return {
warehouseName: [ { required: true, message: '请输入仓库名称', trigger: 'blur' } ],
type: [ { required: true, message: '请选择仓库类型', trigger: 'change' } ],
stationId: [ { required: true, message: '请选择站点', trigger: 'change' } ],
location: [ { required: true, message: '请输入位置', trigger: 'blur' } ],
}
rules: {
id: [ {required: true, message: '请填写Id', trigger: 'blur'} ],
warehouseName: [ {required: true, message: '请填写仓库名称', trigger: 'blur'} ],
type: [ {required: true, message: '请填写仓库类型raw_material-原料库finished_product-成品库', trigger: 'blur'} ],
stationId: [ {required: true, message: '请填写所属站点 Id关联站点表主键', trigger: 'blur'} ],
location: [ {required: true, message: '请填写位置', trigger: 'blur'} ],
maxCapacity: [ {required: true, message: '请填写最大容量单位m³', trigger: 'blur'} ],
remark: [ {required: true, message: '请填写备注', trigger: 'blur'} ],
creatorId: [ {required: true, message: '请填写创建人 Id sys_user.id', trigger: 'blur'} ],
modifierId: [ {required: true, message: '请填写修改人 Idsys_user.id', trigger: 'blur'} ],
createTime: [ {required: true, message: '请填写创建时间', trigger: 'blur'} ],
modifyTime: [ {required: true, message: '请填写修改时间', trigger: 'blur'} ],
deleted: [ {required: true, message: '请填写是否删除; 0-->未删除、1-->已删除', trigger: 'blur'} ],
},
})
watchEffect(() => {
formPanelProps.title = status.value === 'add' ? '新建仓库信息' : '修改仓库信息'
formPanelProps.title = status.value === 'add' ? '新建仓库信息' : '修改仓库信息信息'
})
defineExpose({
open(data?: WarehouseTypes.SearchWarehouseResult) {
formPanelIns.value?.open(data?.id)
},
})
</script>
<style lang="stylus" scoped>
.form-items {
grid-template-columns: 1fr 1fr;
.full-width {
grid-column: span 2;
}
}
</style>

View File

@ -1,31 +1,23 @@
export {}
declare global {
namespace WarehouseTypes {
// 仓库类型枚举
type WarehouseType = 'raw_material' | 'finished_product'
interface SearchWarehouseParam extends G.PageParam {
// Id
id?: string
// 仓库名称
warehouseName?: string
// 仓库类型
type?: WarehouseType
// 站点Id
stationId?: string
// 位置
location?: string
// 创建人Idsys_user.id
// 创建人 Id sys_user.id
creatorId?: string
// 修改人Idsys_user.id
// 修改人 Idsys_user.id
modifierId?: string
// 创建时间
createTime?: string
// 修改时间
modifyTime?: string
// 是否删除;0-->未删除;1-->已删除
// 是否删除; 0-->未删除、1-->已删除
deleted?: boolean
}
@ -34,62 +26,56 @@ declare global {
id?: string
// 仓库名称
warehouseName?: string
// 仓库类型
type?: WarehouseType
// 站点Id
stationId?: string
// 站点名称
stationName?: string
// 位置
location?: string
// 最大容量
maxCapacity?: number
// 备注
remark?: string
// 创建人Idsys_user.id
// 创建人 Id sys_user.id
creatorId?: string
// 修改人Idsys_user.id
// 修改人 Idsys_user.id
modifierId?: string
// 创建时间
createTime?: string
// 修改时间
modifyTime?: string
// 是否删除;0-->未删除;1-->已删除
// 是否删除; 0-->未删除、1-->已删除
deleted?: boolean
}
interface AddWarehouseParam {
// Id
id?: string
// 仓库名称
warehouseName: string
// 仓库类型
type: WarehouseType
// 站点Id
stationId: string
warehouseName?: string
// 位置
location: string
// 单位
unit?: string
// 最大容量
maxCapacity?: number
// 备注
remark?: string
location?: string
// 创建人 Id sys_user.id
creatorId?: string
// 修改人 Idsys_user.id
modifierId?: string
// 创建时间
createTime?: string
// 修改时间
modifyTime?: string
// 是否删除; 0-->未删除、1-->已删除
deleted?: boolean
}
interface ModifyWarehouseParam {
// Id
id: string
id?: string
// 仓库名称
warehouseName?: string
// 仓库类型
type?: WarehouseType
// 站点Id
stationId?: string
// 位置
location?: string
// 最大容量
maxCapacity?: number
// 备注
remark?: string
// 创建人 Id sys_user.id
creatorId?: string
// 修改人 Idsys_user.id
modifierId?: string
// 创建时间
createTime?: string
// 修改时间
modifyTime?: string
// 是否删除; 0-->未删除、1-->已删除
deleted?: boolean
}
}
}