From 7520fa8dd9435946919a3738c35722dbd32b8f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E5=BC=BA?= <1959055484@qq.com> Date: Wed, 2 Oct 2024 18:12:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=A5=E5=BA=93=E5=8D=95?= =?UTF-8?q?=E3=80=81=E5=8F=91=E8=B4=A7=E9=80=9A=E7=9F=A5=E5=8D=95=E3=80=81?= =?UTF-8?q?=E6=9D=A1=E7=A0=81=E5=8E=86=E5=8F=B2=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/inventory/inventoryInboundApi.js | 32 ++ src/api/inventory/inventoryInvoiceApi.js | 32 ++ .../produceTask/produceBarcodeHistoryApi.js | 20 ++ .../inventory/inbound/columns/tableColumn.js | 87 +++++ .../inbound/formFields/searchFields.js | 33 ++ .../inventory/inbound/index.vue | 98 ++++++ .../inventory/invoice/detail/index.vue | 250 +++++++++++++++ .../invoice/formFields/detailFields.js | 187 +++++++++++ .../inventory/invoice/index.vue | 298 ++++++++++++++++++ .../productionCenter/task/index.vue | 5 + .../barcodeHistory/columns/tableColumn.js | 117 +++++++ .../barcodeHistory/formFields/searchFields.js | 7 + .../traceability/barcodeHistory/index.vue | 81 +++++ 13 files changed, 1247 insertions(+) create mode 100644 src/api/inventory/inventoryInboundApi.js create mode 100644 src/api/inventory/inventoryInvoiceApi.js create mode 100644 src/api/production/produceTask/produceBarcodeHistoryApi.js create mode 100644 src/views/productionBusiness/inventory/inbound/columns/tableColumn.js create mode 100644 src/views/productionBusiness/inventory/inbound/formFields/searchFields.js create mode 100644 src/views/productionBusiness/inventory/inbound/index.vue create mode 100644 src/views/productionBusiness/inventory/invoice/detail/index.vue create mode 100644 src/views/productionBusiness/inventory/invoice/formFields/detailFields.js create mode 100644 src/views/productionBusiness/inventory/invoice/index.vue create mode 100644 src/views/productionBusiness/traceability/barcodeHistory/columns/tableColumn.js create mode 100644 src/views/productionBusiness/traceability/barcodeHistory/formFields/searchFields.js create mode 100644 src/views/productionBusiness/traceability/barcodeHistory/index.vue diff --git a/src/api/inventory/inventoryInboundApi.js b/src/api/inventory/inventoryInboundApi.js new file mode 100644 index 0000000..b9b0a73 --- /dev/null +++ b/src/api/inventory/inventoryInboundApi.js @@ -0,0 +1,32 @@ +import { baseRequest } from '@/utils/request' + +const request = (url, ...arg) => baseRequest(`/inventory/inbound/` + url, ...arg) + +/** + * 入库单Api接口管理器 + * + * @author Luck + * @date 2024/09/13 22:39 + **/ +export default { + // 获取入库单分页 + inventoryInboundPage(data) { + return request('page', data, 'get') + }, + // 获取入库单 明细列表 + inventoryInboundDetailList(data) { + return request('/detail/list', data, 'get') + }, + // 获取入库单 条码列表 + inventoryInboundBarcodeTree(data) { + return request('/barcode/tree/list', data, 'get') + }, + // 获取入库单 条码(子级)列表 + inventoryInboundBarcodeTreeChildren(data) { + return request('/barcode/tree/childrenList', data, 'get') + }, + // 获取入库单详情 + inventoryInboundDetail(data) { + return request('detail', data, 'get') + } +} diff --git a/src/api/inventory/inventoryInvoiceApi.js b/src/api/inventory/inventoryInvoiceApi.js new file mode 100644 index 0000000..68c8dd3 --- /dev/null +++ b/src/api/inventory/inventoryInvoiceApi.js @@ -0,0 +1,32 @@ +import { baseRequest } from '@/utils/request' + +const request = (url, ...arg) => baseRequest(`/inventory/invoice/` + url, ...arg) + +/** + * 发货通知单Api接口管理器 + * + * @author Luck + * @date 2024/09/23 20:53 + **/ +export default { + // 获取发货通知单分页 + inventoryInvoicePage(data) { + return request('page', data, 'get') + }, + // 提交发货通知单表单 edit为true时为编辑,默认为新增 + inventoryInvoiceSubmitForm(data, edit = false) { + return request(edit ? 'edit' : 'add', data) + }, + // 删除发货通知单 + inventoryInvoiceDelete(data) { + return request('delete', data) + }, + // 获取发货通知单详情 + inventoryInvoiceDetail(data) { + return request('detail', data, 'get') + }, + // 审核发货单 通过 + inventoryInvoiceAuditPass(data, edit = false) { + return request('audit/pass', data) + }, +} diff --git a/src/api/production/produceTask/produceBarcodeHistoryApi.js b/src/api/production/produceTask/produceBarcodeHistoryApi.js new file mode 100644 index 0000000..d7f8329 --- /dev/null +++ b/src/api/production/produceTask/produceBarcodeHistoryApi.js @@ -0,0 +1,20 @@ +import { baseRequest } from '@/utils/request' + +const request = (url, ...arg) => baseRequest(`/produce/barcode/history/` + url, ...arg) + +/** + * 产品条码历史记录Api接口管理器 + * + * @author Luck + * @date 2024/09/09 19:41 + **/ +export default { + // 获取产品条码历史记录分页 + produceBarcodeHistoryPage(data) { + return request('page', data, 'get') + }, + // 获取产品条码历史记录详情 + produceBarcodeHistoryDetail(data) { + return request('detail', data, 'get') + } +} diff --git a/src/views/productionBusiness/inventory/inbound/columns/tableColumn.js b/src/views/productionBusiness/inventory/inbound/columns/tableColumn.js new file mode 100644 index 0000000..ea874c3 --- /dev/null +++ b/src/views/productionBusiness/inventory/inbound/columns/tableColumn.js @@ -0,0 +1,87 @@ +export const tableColumns = [ + { + title: '单号', + dataIndex: 'billNumber', + align: 'center', + resizable: true, + width: 200, + ellipsis: true + }, + { + title: '业务日期', + dataIndex: 'businessDate', + align: 'center', + sorter: true, + sortDirections: ['descend', 'ascend'], + resizable: true, + width: 200, + ellipsis: true + }, + { + title: '类型', + dataIndex: 'type', + align: 'center', + resizable: true, + width: 100, + ellipsis: true + }, + { + title: '供货单位', + dataIndex: 'customerName', + align: 'center', + resizable: true, + width: 200, + ellipsis: true + }, + { + title: '供货单位编码', + dataIndex: 'customerNumber', + align: 'center', + resizable: true, + width: 200, + ellipsis: true + }, + { + title: '仓库', + dataIndex: 'storeName', + align: 'center', + resizable: true, + width: 200, + ellipsis: true + }, + { + title: '仓库编码', + dataIndex: 'storeNumber', + align: 'center', + resizable: true, + width: 250, + ellipsis: true + }, + { + title: '备注', + dataIndex: 'remarks', + align: 'center', + resizable: true, + width: 200, + ellipsis: true + }, + + { + title: '创建人', + dataIndex: 'createUserName', + align: 'center', + resizable: true, + width: 200, + ellipsis: true + }, + { + title: '创建时间', + dataIndex: 'createTime', + sorter: true, + sortDirections: ['descend', 'ascend'], + align: 'center', + resizable: true, + width: 200, + ellipsis: true + } +] diff --git a/src/views/productionBusiness/inventory/inbound/formFields/searchFields.js b/src/views/productionBusiness/inventory/inbound/formFields/searchFields.js new file mode 100644 index 0000000..2d4ce9d --- /dev/null +++ b/src/views/productionBusiness/inventory/inbound/formFields/searchFields.js @@ -0,0 +1,33 @@ +import tool from '@/utils/tool' + +export const searchFields = [ + { name: 'billNumber', label: '单号', component: 'a-input', props: { placeholder: '请输入单号' } }, + { + label: '类型:', + name: 'type', + type: 'a-select', + attrs: { + placeholder: '请选择类型', + allowClear: true, + options: tool.dictList('INBOUND_TYPE') + } + }, + { + label: '仓库:', + name: 'storeId', + type: 'a-tree-select', + span: 6, + attrs: { + placeholder: '请选择仓库', + treeData: [], + fieldNames: { + children: 'children', + label: 'name', + value: 'id' + } + }, + defaultValue: '' + }, + { name: 'customerName', label: '供货单位名称', component: 'a-input', props: { placeholder: '请输入供货单位名称' } }, + { name: 'customerNumber', label: '供货单位编码', component: 'a-input', props: { placeholder: '请输入供货单位编码' } } +] diff --git a/src/views/productionBusiness/inventory/inbound/index.vue b/src/views/productionBusiness/inventory/inbound/index.vue new file mode 100644 index 0000000..1ac45af --- /dev/null +++ b/src/views/productionBusiness/inventory/inbound/index.vue @@ -0,0 +1,98 @@ + + + + diff --git a/src/views/productionBusiness/inventory/invoice/detail/index.vue b/src/views/productionBusiness/inventory/invoice/detail/index.vue new file mode 100644 index 0000000..2b124a4 --- /dev/null +++ b/src/views/productionBusiness/inventory/invoice/detail/index.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/views/productionBusiness/inventory/invoice/formFields/detailFields.js b/src/views/productionBusiness/inventory/invoice/formFields/detailFields.js new file mode 100644 index 0000000..a6a45f8 --- /dev/null +++ b/src/views/productionBusiness/inventory/invoice/formFields/detailFields.js @@ -0,0 +1,187 @@ +import tool from '@/utils/tool' +import { required } from '@/utils/formRules' + +const basicInfoFormRules = { + type: [required('请选择类型')], + businessDate: [required('请选择业务日期')], + storeId: [required('请选择仓库')], + customerName: [required('请选择客户')] +} + +const basicInfoFormItems = [ + { + label: '单据号:', + name: 'billNumber', + type: 'a-input', + attrs: { + placeholder: '请输入单号', + allowClear: true + } + }, + { + label: '业务日期:', + name: 'businessDate', + type: 'a-date-picker', + attrs: { + placeholder: '请选择业务日期', + allowClear: true, + valueFormat: 'YYYY-MM-DD HH:mm:ss' + } + }, + { + label: '类型:', + name: 'type', + type: 'a-select', + attrs: { + placeholder: '请选择类型', + allowClear: true, + options: tool.dictList('OUTBOUND_TYPE') + } + }, + { + label: '客户:', + name: 'customerName', + type: 'a-input', + isUseSlot: true, + slotName: 'customerNameSlot', + attrs: { + placeholder: '请选择客户' + } + }, + { + label: '仓库:', + name: 'storeId', + type: 'a-tree-select', + span: 6, + attrs: { + placeholder: '请选择仓库', + treeData: [], + fieldNames: { + children: 'children', + label: 'name', + value: 'id' + } + }, + defaultValue: '' + }, + { + label: '车牌号:', + name: 'carNumber', + type: 'a-input', + attrs: { + placeholder: '请输入车牌号', + allowClear: true + } + }, + { + label: '停车位:', + name: 'parkingSpace', + type: 'a-input', + attrs: { + placeholder: '请输入停车位', + allowClear: true + } + }, + { + label: '业务员:', + name: 'salesman', + type: 'a-input', + attrs: { + placeholder: '请输入业务员', + allowClear: true + } + }, + { + label: '收货方:', + name: 'receiveParty', + type: 'a-input', + attrs: { + placeholder: '请输入收货方', + allowClear: true + } + }, + { + label: '交货日期:', + name: 'deliveryDate', + type: 'a-date-picker', + attrs: { + placeholder: '请选择交货日期', + allowClear: true, + valueFormat: 'YYYY-MM-DD HH:mm:ss' + } + }, + { + label: '交货地址:', + name: 'deliveryAddress', + type: 'a-input', + attrs: { + placeholder: '请输入交货地址', + allowClear: true + } + }, + { + label: '备注:', + name: 'remarks', + type: 'a-input', + span: 12, + attrs: { + placeholder: '请输入备注', + allowClear: true + } + } +] + +const productDetailFormItems = [ + { + title: '序号', + dataIndex: 'index', + editable: true, + width: 80 + }, + { + title: '商品名称', + dataIndex: 'productName', + editable: true, + width: 300, + dataType: 'select' // 或 'number', 'select' + }, + { + title: '商品编码', + dataIndex: 'productNumber', + editable: true, + width: 300 + }, + { + title: '规格型号', + dataIndex: 'specification', + editable: true, + width: 300 + }, + { + title: '基本单位', + dataIndex: 'baseUnitName', + editable: true, + width: 300 + }, + { + title: '批次号', + dataIndex: 'batchNumber', + width: 300, + editable: true + }, + { + title: '单位', + dataIndex: 'unitName', + width: 300, + editable: true + }, + { + title: '计划数量', + dataIndex: 'planAmount', + width: 300, + editable: true, + dataType: 'number' // 或 'number', 'select' + } +] + +export { basicInfoFormRules, basicInfoFormItems, productDetailFormItems } \ No newline at end of file diff --git a/src/views/productionBusiness/inventory/invoice/index.vue b/src/views/productionBusiness/inventory/invoice/index.vue new file mode 100644 index 0000000..46f67e3 --- /dev/null +++ b/src/views/productionBusiness/inventory/invoice/index.vue @@ -0,0 +1,298 @@ + + + diff --git a/src/views/productionBusiness/productionCenter/task/index.vue b/src/views/productionBusiness/productionCenter/task/index.vue index 716c568..617dd9b 100644 --- a/src/views/productionBusiness/productionCenter/task/index.vue +++ b/src/views/productionBusiness/productionCenter/task/index.vue @@ -76,6 +76,11 @@ $TOOL.dictTypeData('PRODUCE_TASK_STATE', record.state || '') }} + + + +