From 394e3e4223068fc1e0cb749cc82ccce22357fad8 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" Date: Fri, 12 Dec 2025 21:16:57 +0800 Subject: [PATCH] no message --- src/views/base/item/ItemList.vue | 4 - src/views/base/stock/StockList.vue | 4 +- src/views/conveyorLine/ConveyorLine.api.ts | 14 ++ src/views/receive/asn/Asn.data.ts | 22 ++- src/views/receive/asn/AsnList.vue | 23 ++- .../asn/components/scanTray/ScanTrayForm.vue | 138 ++++++++++++++++++ .../asn/components/scanTray/ScanTrayModal.vue | 65 +++++++++ src/views/shipping/Pick.data.ts | 38 ++++- src/views/shipping/components/PickForm.vue | 33 ++++- 9 files changed, 321 insertions(+), 20 deletions(-) create mode 100644 src/views/receive/asn/components/scanTray/ScanTrayForm.vue create mode 100644 src/views/receive/asn/components/scanTray/ScanTrayModal.vue diff --git a/src/views/base/item/ItemList.vue b/src/views/base/item/ItemList.vue index 527b1b5..39808b8 100644 --- a/src/views/base/item/ItemList.vue +++ b/src/views/base/item/ItemList.vue @@ -78,8 +78,6 @@ import { useListPage } from '/@/hooks/system/useListPage'; import { columns } from './Item.data'; import { list, deleteOne, batchDelete, saveOrUpdate, getImportUrl, getExportUrl } from './Item.api'; - import { useUserStore } from '/@/store/modules/user'; - import { useMessage } from '/@/hooks/web/useMessage'; import { getDateByPicker } from '/@/utils'; import { JInputTypeEnum } from '@/enums/cpteEnum'; import JInput from '/@/components/Form/src/jeecg/components/JInput.vue'; @@ -93,8 +91,6 @@ const queryParam = reactive({}); const toggleSearchStatus = ref(false); const registerModal = ref(); - const userStore = useUserStore(); - const { createMessage } = useMessage(); //将是否启用转换成开关 const enhancedColumns = columns.map((col) => { diff --git a/src/views/base/stock/StockList.vue b/src/views/base/stock/StockList.vue index 5a58792..193ac07 100644 --- a/src/views/base/stock/StockList.vue +++ b/src/views/base/stock/StockList.vue @@ -7,7 +7,7 @@ - + @@ -97,6 +97,8 @@ import { useMessage } from '/@/hooks/web/useMessage'; import { getDateByPicker } from '/@/utils'; import { JDictSelectTag, JSearchSelect } from '@/components/Form'; + import { JInputTypeEnum } from '@/enums/cpteEnum'; + import JInput from '../../../components/Form/src/jeecg/components/JInput.vue'; const fieldPickers = reactive({}); diff --git a/src/views/conveyorLine/ConveyorLine.api.ts b/src/views/conveyorLine/ConveyorLine.api.ts index c785667..36ed294 100644 --- a/src/views/conveyorLine/ConveyorLine.api.ts +++ b/src/views/conveyorLine/ConveyorLine.api.ts @@ -2,6 +2,7 @@ import { defHttp } from '/@/utils/http/axios'; enum Api { showConveyorLine = '/api/conveyorLine/showConveyorLine', + scanTray='/api/conveyorLine/scanTray', } export const showConveyorLine = (conveyorLine) => { @@ -13,3 +14,16 @@ export const showConveyorLine = (conveyorLine) => { { joinParamsToUrl: true } ); }; + +/** + * 输送线扫描 + * @param params + */ +export const scanTray = (params) => { + return defHttp.post( + { url: Api.scanTray, params }, + { + isTransformResponse: false, + } + ); +}; diff --git a/src/views/receive/asn/Asn.data.ts b/src/views/receive/asn/Asn.data.ts index 26bd799..9c053fe 100644 --- a/src/views/receive/asn/Asn.data.ts +++ b/src/views/receive/asn/Asn.data.ts @@ -7,21 +7,25 @@ export const columns: BasicColumn[] = [ title: '系统单号', align: 'center', dataIndex: 'orderNo', + width: '130px', }, { - title: '外部单号', + title: '赛意单号', align: 'center', dataIndex: 'thirdOrderNo', + width: '120px', }, { title: '任务号', align: 'center', dataIndex: 'no', + width: '160px', }, { title: '订单状态', align: 'center', dataIndex: 'status_dictText', + width: '80px', customRender: ({ text }) => { //入库状态:1.已创建;2.部分收货;3.收货完成;4.已关闭,5.已取消。 const statusColorMap = { @@ -39,31 +43,39 @@ export const columns: BasicColumn[] = [ title: '单据类型', align: 'center', dataIndex: 'orderType_dictText', + width: '80px', }, { title: '需求数量', align: 'center', dataIndex: 'orderQty', + width: '80px', }, { title: '收货数量', align: 'center', dataIndex: 'receivedQty', + width: '80px', }, { title: '供应商', align: 'center', dataIndex: 'supplierCode', + width: '80px', }, { title: '外部仓库', align: 'center', dataIndex: 'whCode', + width: '80px', }, { title: '回传报文', align: 'center', dataIndex: 'resMessage', + customRender: ({ text }) => { + return render.renderTip(text) + } }, { title: '订单日期', @@ -87,11 +99,11 @@ export const asnDetailColumns: JVxeColumn[] = [ { title: '物料', key: 'itemId', - type: JVxeTypes.selectSearch, + type: JVxeTypes.selectDictSearch, width: 150, async: true, // 异步搜索,默认为 true //查询状态启用、未删除的物料 - dictCode: 'base_item where iz_active=1 and del_flag=0,item_code,id', + dict: 'base_item where iz_active=1 and del_flag=0,item_code,id', tipsContent: '请搜索物料', validateRules: [ { @@ -112,11 +124,11 @@ export const asnDetailColumns: JVxeColumn[] = [ { title: '容器', key: 'stockId', - type: JVxeTypes.selectSearch, + type: JVxeTypes.selectDictSearch, width: 150, async: true, // 异步搜索,默认为 true //查询状态为可用、启用、未删除的容器 - dictCode: 'base_stock where iz_active=1 and del_flag=0,stock_code,id', + dict: 'base_stock where iz_active=1 and del_flag=0,stock_code,id', tipsContent: '请搜索容器', validateRules: [ { diff --git a/src/views/receive/asn/AsnList.vue b/src/views/receive/asn/AsnList.vue index 9d08289..2bd60d0 100644 --- a/src/views/receive/asn/AsnList.vue +++ b/src/views/receive/asn/AsnList.vue @@ -56,6 +56,8 @@ @@ -100,23 +103,21 @@ import AsnModal from './components/AsnModal.vue'; import { columns } from './Asn.data'; import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './Asn.api'; - import { useMessage } from '/@/hooks/web/useMessage'; import { getDateByPicker } from '/@/utils'; - import { useUserStore } from '/@/store/modules/user'; import { JInputTypeEnum } from '@/enums/cpteEnum'; import { JInput, JDictSelectTag } from '@/components/Form'; import JRangeDate from '@/components/Form/src/jeecg/components/JRangeDate.vue'; + import ScanTrayModal from '@/views/receive/asn/components/scanTray/ScanTrayModal.vue'; + import ItemModal from '@/views/base/item/components/ItemModal.vue'; const fieldPickers = reactive({}); const formRef = ref(); const queryParam = reactive({}); - const checkedKeys = ref>([]); + //注册model const [registerModal, { openModal }] = useModal(); - const userStore = useUserStore(); - const { createMessage } = useMessage(); //注册table数据 - const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({ + const { tableContext, onExportXls, onImportXls } = useListPage({ tableProps: { title: '入库单', api: list, @@ -213,6 +214,16 @@ await batchDelete({ ids: selectedRowKeys.value }, handleSuccess); } + /** + * 托盘扫描 + */ + const registerScanTrayModal = ref(); + + function scanTray() { + registerScanTrayModal.value.disableSubmit = false; + registerScanTrayModal.value.add(); + } + /** * 成功回调 */ diff --git a/src/views/receive/asn/components/scanTray/ScanTrayForm.vue b/src/views/receive/asn/components/scanTray/ScanTrayForm.vue new file mode 100644 index 0000000..436047c --- /dev/null +++ b/src/views/receive/asn/components/scanTray/ScanTrayForm.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/src/views/receive/asn/components/scanTray/ScanTrayModal.vue b/src/views/receive/asn/components/scanTray/ScanTrayModal.vue new file mode 100644 index 0000000..14ec4b1 --- /dev/null +++ b/src/views/receive/asn/components/scanTray/ScanTrayModal.vue @@ -0,0 +1,65 @@ + + + + + + diff --git a/src/views/shipping/Pick.data.ts b/src/views/shipping/Pick.data.ts index 569236f..73bbe81 100644 --- a/src/views/shipping/Pick.data.ts +++ b/src/views/shipping/Pick.data.ts @@ -94,11 +94,11 @@ export const pickDetailColumns: JVxeColumn[] = [ { title: '物料', key: 'itemId', - type: JVxeTypes.selectSearch, + type: JVxeTypes.selectDictSearch, width: 150, async: true, // 异步搜索,默认为 true //查询状态启用、未删除的物料 - dictCode: 'base_item where iz_active=1 and del_flag=0,item_code,id', + dict: 'base_item where iz_active=1 and del_flag=0,item_code,id', tipsContent: '请搜索物料', validateRules: [ { @@ -209,6 +209,40 @@ export const pickDetailColumns: JVxeColumn[] = [ placeholder: '请输入${title}', defaultValue: null, }, +]; + +//task表格配置 +export const taskColumns: JVxeColumn[] = [ + { + title: '任务ID', + key: 'id', + type: JVxeTypes.hidden, + }, + { + title: '物料', + key: 'itemId', + type: JVxeTypes.normal, + async: true, // 异步搜索,默认为 true + //查询状态启用、未删除的物料 + dict: 'base_item where iz_active=1 and del_flag=0,item_code,id', + tipsContent: '请搜索物料', + }, + { + title: '单位', + key: 'unit', + type: JVxeTypes.normal, + dictCode: 'package_unit', + placeholder: '请选择${title}', + defaultValue: '托', + }, + + { + title: '拣货数量', + key: 'planQty', + type: JVxeTypes.normal, + defaultValue: '0', + disabled: true, + }, { title: '返回报文', key: 'resMessage', diff --git a/src/views/shipping/components/PickForm.vue b/src/views/shipping/components/PickForm.vue index d284567..f3d3fbc 100644 --- a/src/views/shipping/components/PickForm.vue +++ b/src/views/shipping/components/PickForm.vue @@ -85,6 +85,21 @@ :toolbar="true" /> + + + @@ -94,7 +109,7 @@ import { useValidateAntFormAndTable } from '/@/hooks/system/useJvxeMethods'; import { queryPickDetailListByMainId, queryDataById, saveOrUpdate } from '../Pick.api'; import { JVxeTable } from '/@/components/jeecg/JVxeTable'; - import { pickDetailColumns } from '../Pick.data'; + import { pickDetailColumns, taskColumns } from '../Pick.data'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; import { JDictSelectTag } from '@/components/Form'; import { Form } from 'ant-design-vue'; @@ -126,12 +141,23 @@ setup(props, { emit }) { const loading = ref(false); const formRef = ref(); + //出库明细 const pickDetailTableRef = ref(); const pickDetailTable = reactive>({ loading: false, columns: pickDetailColumns, dataSource: [], }); + + //拣货详细 + const taskTableRef = ref(); + const taskTable = reactive>({ + loading: false, + columns: taskColumns, + dataSource: [], + }); + + const activeKey = ref('pickDetail'); //仓库 ID let tenantId = getTenantId(); @@ -154,7 +180,7 @@ thirdOrderNo: [{ required: true, message: '请输入外部单号!' }], no: [{ required: true, message: '请输入任务号!' }], orderType: [{ required: true, message: '请选择单据类型!' }], - whCode: [{ required: true, message: '请输入外部仓库代码' }] + whCode: [{ required: true, message: '请输入外部仓库代码' }], }); const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false }); //日期个性化选择 @@ -205,6 +231,7 @@ const { getSubFormAndTableData, transformData } = useValidateAntFormAndTable(activeKey, { pickDetail: pickDetailTableRef, + task: taskTableRef, }); async function getFormData() { @@ -284,6 +311,8 @@ return { pickDetailTableRef, pickDetailTable, + taskTableRef, + taskTable, validatorRules, validateInfos, activeKey,