| | |
| | | import { computed, ref } from 'vue'; |
| | | |
| | | import { useVbenModal } from '@vben/common-ui'; |
| | | import { BarcodeBizTypeEnum, CommonStatusEnum } from '@vben/constants'; |
| | | import { CommonStatusEnum } from '@vben/constants'; |
| | | |
| | | import { message } from 'ant-design-vue'; |
| | | |
| | | import { useVbenForm } from '#/adapter/form'; |
| | | import { createBarcode, getBarcode, updateBarcode } from '#/api/mes/wm/barcode'; |
| | | import { getWarehouseArea } from '#/api/mes/wm/warehouse/area'; |
| | | import { getWarehouseLocation } from '#/api/mes/wm/warehouse/location'; |
| | | import { $t } from '#/locales'; |
| | | |
| | | import { useFormSchema } from '../data'; |
| | |
| | | schema: [], |
| | | showDefaultActions: false, |
| | | }); |
| | | |
| | | /** 加载级联选择器的数据(编辑时回填上级仓库/库区) */ |
| | | async function loadCascadeData(data: MesWmBarcodeApi.Barcode) { |
| | | if (!data.bizType || !data.bizId) { |
| | | return; |
| | | } |
| | | if (data.bizType === BarcodeBizTypeEnum.LOCATION) { |
| | | const location = await getWarehouseLocation(data.bizId); |
| | | if (location?.warehouseId) { |
| | | await formApi.setFieldValue('locationWarehouseId', location.warehouseId); |
| | | } |
| | | } else if (data.bizType === BarcodeBizTypeEnum.AREA) { |
| | | const area = await getWarehouseArea(data.bizId); |
| | | await formApi.setValues({ |
| | | areaWarehouseId: area?.warehouseId, |
| | | areaLocationId: area?.locationId, |
| | | }); |
| | | } |
| | | } |
| | | |
| | | const [Modal, modalApi] = useVbenModal({ |
| | | async onConfirm() { |
| | |
| | | formData.value = await getBarcode(data.id); |
| | | // 设置到 values |
| | | await formApi.setValues(formData.value); |
| | | await loadCascadeData(formData.value); |
| | | } finally { |
| | | modalApi.unlock(); |
| | | } |