From 3fd2adc06bd63c5ed1a49e24f81cbdafc4fd2263 Mon Sep 17 00:00:00 2001 From: zhaoxuebing <1291173720@qq.com> Date: Mon, 13 May 2024 10:30:08 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E8=B4=A7=E5=A2=9E=E5=8A=A0=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=A0=87=E7=AD=BE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/purchasereturnRequestMain/index.ts | 5 + .../purchasereceiptRequestMain/index.vue | 1 - .../purchasereturnRequestMain/index.vue | 136 ++++++++- .../purchasereturnRequestMain.data.ts | 267 +++++++++++++++++- 4 files changed, 395 insertions(+), 14 deletions(-) diff --git a/src/api/wms/purchasereturnRequestMain/index.ts b/src/api/wms/purchasereturnRequestMain/index.ts index d6b4a3b7c..10be8d9e6 100644 --- a/src/api/wms/purchasereturnRequestMain/index.ts +++ b/src/api/wms/purchasereturnRequestMain/index.ts @@ -107,3 +107,8 @@ export const refusedPurchasereturnRequestMain = async (id) => { export const handlePurchasereturnRequestMain = async (id) => { return await request.put({ url: `/wms/purchasereturn-request-main/handle?id=` + id }) } + +// 生成标签 +export const genLabel = async (data) => { + return await request.post({ url: `/wms/purchasereturn-request-main/genLabel`, data }) +} diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue index ded71312d..16b361438 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue @@ -110,7 +110,6 @@ :isShowReduceButton="false" @submitForm="submitFormLabel" @searchTableSuccess="searchTableSuccessLabel" - /> diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue index 84486e1c7..eb2bff794 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue @@ -85,6 +85,21 @@ :detailValidate="detailValidate" /> + + + + { } } +// 生成标签 +const isCreateLabel = ref(false) +const formLabelRef = ref() +const { tableObject: detatableData, tableMethods: detatableMethods } =useTable({ + getListApi: PurchasereturnRequestDetailApi.getPurchasereturnRequestDetailPage +}) +const { getList:getDetailList } = detatableMethods + +// 生成标签按钮操作 +const submitFormLabel = async (formType, data) => { + try { + console.log("formType==",formType) + console.log("data==",data) + data.subList = detatableData.tableList + console.log("detatableData",detatableData) + await message.confirm(t('ts.是否为此数据生成标签?')) + await PurchasereturnRequestMainApi.genLabel(data) //genLabelId.value + isCreateLabel.value = true + message.success('创建标签成功') + } finally { + formLabelRef.value.formLoading = false + formLabelRef.value.dialogVisible = false + } +} + +// 查询页面返回 +const searchTableSuccessLabel = (formField, searchField, val, formRef, type, row) => { + nextTick(() => { + if (type == 'tableForm') { + // 明细查询页赋值 + row[formField] = val[0][searchField] + if (formField == 'packUnit' || formField == 'packQty') { + row['packUnit'] = val[0]['packUnit'] + row['packQty'] = val[0]['packQty'] + } + } + }) +} + // 查询页面返回 const searchTableSuccess = (formField, searchField, val, formRef, type, row) => { nextTick(() => { @@ -195,8 +254,6 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) => if(formField == 'purchaseReceiptRecordNumber'){ // isShowButton.value = false setV[formField] = val[0][searchField] - console.log(333333,val[0]); - setV['purchaseReceiptRecordNumber'] = val[0]['number'] setV['supplierCode'] = val[0]['supplierCode'] setV['asnNumber'] = val[0]['asnNumber'] @@ -209,7 +266,6 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) => if (res) tableData.value = res tableData.value.forEach((item) => { item.batch = item.toBatch - item.packingNumber = item.toPackingNumber item.containerNumber = item.toContainerNumber item.receiptQty = item.qty @@ -413,7 +469,18 @@ const butttondata = (row,$index) => { defaultButtons.mainListEditBtn({ hide: isShowMainButton(row, ['1']), hasPermi: 'wms:purchasereceipt-request-main:update' - }) // 编辑 + }), // 编辑 + { + label: '生成标签', + name: 'ssbq', + hide: isShowMainButton(row, ['3']), + type: 'primary', + icon: '', + color: '', + hasPermi: '', + link: true // 文本展现按钮 + }, + defaultButtons.mainListPointBtn({ hide: isShowMainButton(row, ['3','8']) }), // 标签打印 ] } @@ -440,7 +507,18 @@ const buttonTableClick = async (val, row) => { } else if (val == 'edit') { // 编辑 openForm('update', row) - } + } else if(val == 'ssbq'){ + // 生成标签 + detatableData.params = { + masterId:row.masterId + } + genLabelId.value = row.masterId + await getDetailList() + formLabelRef.value.open('create', row, null,'createLabel')//创建标签页面 createLabel 标题 + } else if (val == 'point') { + // 标签打印 + labelPrint(row) + } } /** 添加/修改操作 */ @@ -814,6 +892,48 @@ const detailOpenForm = (type, row) =>{ }) } + +const BASE_URL = import.meta.env.VITE_JMREPORT_BASE_URL +const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken()) + +// 标签打印 +const showLabelRef = ref() +const labelPrint = async (row) => { + tableObject.loading = true + const defaultParams = {'moduleName':'supplier','recordNumber':row.number} + const {tableObject:tableObjectPrint ,tableMethods} = useTable({ + defaultParams, + getListApi: PackageApi.getLabelDetailPage // 分页接口 + }) + + // 获得表格的各种操作 + const { getList:getListPrint } = tableMethods + getListPrint() + tableObject.loading = false + const tableColumns = SupplierdeliverRequestPackage.allSchemas.tableFormColumns + tableColumns.forEach((item) => { + item.width = item.table?.width || 150 + }) + showLabelRef.value.openData("标签信息",tableObjectPrint,{tableColumns},true) +} + +// 批量打印---采购收货申请 +const showLabelSuccess = async (formField, searchField, val, formRef, type, row) => { + console.log('批量打印',val) + + if(val.length == 0){ + message.warning("请先选择要打印的数据!") + return + } + await PackageApi.batchPrintingLable(val.map(item1=>item1.number).join(',')).then(res => { + console.log(res) + window.open(src.value + '&asn_number=' + res) + }).catch(err => { + console.log(err) + message.error('创建标签失败') + }) +} + /** 初始化 **/ onMounted(async () => { getList() diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts index 805c58a68..fedad8d98 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts @@ -2,14 +2,12 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' const { t } = useI18n() // 国际化 import * as getRequestsettingApi from '@/api/wms/requestsetting/index' -import * as PurchasereceiptRecordMainApi from '@/api/wms/purchasereceiptRecordMain' -import { - PurchasereceiptRecordDetail, - PurchasereceiptRecordMain -} from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' +import { PurchasereceiptRecordDetail,PurchasereceiptRecordMain } from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' import { Supplier } from "@/views/wms/basicDataManage/supplierManage/supplier/supplier.data"; import * as SupplierApi from "@/api/wms/supplier"; +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' // 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 @@ -1202,3 +1200,262 @@ export const PurchasereturnRequestDetailRules = reactive({ { max: 50, message: '不得超过50个字符', trigger: 'blur' } ], }) + +export const PurchasereReturnRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '器具号', + field: 'containerNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + { + label: '替代批次', + field: 'altBatch', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, +])) \ No newline at end of file