diff --git a/src/api/wms/customerreturnRequestMain/index.ts b/src/api/wms/customerreturnRequestMain/index.ts index 35a99a1fc..873bb25a4 100644 --- a/src/api/wms/customerreturnRequestMain/index.ts +++ b/src/api/wms/customerreturnRequestMain/index.ts @@ -117,4 +117,9 @@ export const pageItemCodeToBalance = async (params) => { } else { return request.get({ url: `/wms/customerreturn-request-main/pageItemCodeToBalance`, params }) } -} \ No newline at end of file +} + +// 生成标签 +export const genLabel = async (data) => { + return await request.post({ url: `/wms/customerreturn-request-main/genLabel`, data }) +} diff --git a/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts b/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts index a08b7c74e..96493a335 100644 --- a/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts +++ b/src/views/wms/basicDataManage/itemManage/relegate/relegateRequest/relegateRequestMain.data.ts @@ -304,7 +304,6 @@ export const RelegateRequestDetail = useCrudSchemas(reactive([ label: '物料代码', field: 'itemCode', sort: 'custom', - isSearch: true, form: { componentProps: { isSearchList: true, @@ -379,7 +378,6 @@ export const RelegateRequestDetail = useCrudSchemas(reactive([ isMainValue: false }] }, - isSearch: true, table: { width: 150 }, diff --git a/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts b/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts index e6c424e58..8c3e40df6 100644 --- a/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts +++ b/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/customerreturnRequestMain.data.ts @@ -1064,4 +1064,263 @@ export const CustomerreturnRequestDetailRules = reactive({ { max: 50, message: '不得超过50个字符', trigger: 'blur' } ], -}) \ No newline at end of file +}) + +export const CustomerReturnRequestDetailLabel = 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 diff --git a/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue b/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue index 8aad48d77..4ed29a7e3 100644 --- a/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue +++ b/src/views/wms/deliversettlementManage/customerreturn/customerreturnRequestMain/index.vue @@ -76,6 +76,21 @@ :detailButtonIsShowDelete="trueFalse" @detailOpenForm="detailOpenForm" /> + + + + import download from '@/utils/download' import { CACHE_KEY, useCache } from '@/hooks/web/useCache' -import { CustomerreturnRequestMain,CustomerreturnRequestMainRules,CustomerreturnRequestDetail,CustomerreturnRequestDetailRules } from './customerreturnRequestMain.data' +import { CustomerreturnRequestMain,CustomerreturnRequestMainRules,CustomerreturnRequestDetail,CustomerreturnRequestDetailRules,CustomerReturnRequestDetailLabel } from './customerreturnRequestMain.data' import * as CustomerreturnRequestMainApi from '@/api/wms/customerreturnRequestMain' import * as CustomerreturnRequestDetailApi from '@/api/wms/customerreturnRequestDetail' import * as defaultButtons from '@/utils/disposition/defaultButtons' import * as DeliverRecordDetailApi from '@/api/wms/deliverRecordDetail' - +import { + SupplierdeliverRequestPackage +} from '../../../purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data' +import * as PackageApi from '@/api/wms/package' +import { getAccessToken } from '@/utils/auth' // 客户退货申请 defineOptions({ name: 'CustomerreturnRequestMain' }) @@ -100,6 +119,7 @@ const { t } = useI18n() // 国际化 const route = useRoute() // 路由信息 const routeName = ref() const customerCode = ref() +const genLabelId = ref(); //主表ID routeName.value = route.name const tableColumns = ref([...CustomerreturnRequestMain.allSchemas.tableColumns,...CustomerreturnRequestDetail.allSchemas.tableMainColumns]) @@ -344,8 +364,65 @@ const buttonTableClick = async (val, row) => { openForm('update', row) } else if (val == 'delete') { // 删除 handleDelete(row.masterId) + }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) + } +} +// 生成标签 +const isCreateLabel = ref(false) +const formLabelRef = ref() +const { tableObject: detatableData, tableMethods: detatableMethods } =useTable({ + getListApi: CustomerreturnRequestDetailApi.getCustomerreturnRequestDetailPage +}) +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 CustomerreturnRequestMainApi.genLabel(data) //genLabelId.value + isCreateLabel.value = true + message.success('创建标签成功') + } finally { + formLabelRef.value.formLoading = false + formLabelRef.value.dialogVisible = false } } +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 formRef = ref() @@ -531,6 +608,23 @@ const searchFormClick = (searchData) => { getList() // 刷新当前列表 } +// 批量打印---采购收货申请 +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/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue index 083e6b2d1..e2920d06c 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue @@ -266,7 +266,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) => if (res) tableData.value = res tableData.value.forEach((item) => { item.batch = item.toBatch - item.packingNumber = null + item.packingNumber = item.fromPackingNumber item.containerNumber = item.toContainerNumber item.receiptQty = item.qty item.toLocationGroupCode = null