Browse Source

【NEV-PC】暂存

ag_report_nev
安虹睿 1 year ago
parent
commit
75df43f08d
  1. 15
      fe/PC/src/api/wms-api.js
  2. 171
      fe/PC/src/utils/detailsTableColumns/index.js
  3. 98
      fe/PC/src/utils/tableColumns/index.js
  4. 83
      fe/PC/src/utils/tabsDesTions/index.js
  5. 12
      fe/PC/src/views/basicData/WorkshopManage/ProductionLine.vue
  6. 69
      fe/PC/src/views/finishedProductManage/dismantle/customerDismantleJob.vue
  7. 49
      fe/PC/src/views/finishedProductManage/dismantle/customerDismantleNote.vue
  8. 548
      fe/PC/src/views/materialIssueManage/ZP/IssueJobZP.vue
  9. 129
      fe/PC/src/views/materialIssueManage/ZP/IssueNoteZP.vue
  10. 228
      fe/PC/src/views/materialIssueManage/ZP/IssueRequestZP.vue

15
fe/PC/src/api/wms-api.js

@ -656,12 +656,21 @@ export async function productionRecycleJobHandle(id,data) {
})
}
// 客户退拆任务-完成 todo
export async function productionRecycleJobComplete(id) {
return request({
url: baseURL + 'wms/store/production-recycle-job/handle/'+id,
method: 'post',
})
}
// 客户退拆任务-执行后打印
export async function productRecycleNoteExport(data) {
return request({
url: baseURL + 'wms/store/product-recycle-note/export-product-recycle',
method: 'post',
data:data
url: baseURL + 'wms/store/product-recycle-note/export-product-recycle',
method: 'post',
data:data,
responseType: 'blob'
})
}

171
fe/PC/src/utils/detailsTableColumns/index.js

@ -3925,6 +3925,177 @@ export const IssueNotePT = [
// ************** 确定隐藏 ************************
]
// 人工发料申请(装配)
export const IssueRequestZP = [
{ label: "物品代码", prop: "itemCode" },
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "状态", prop: "status", type: "filter", filters: "openToClose" },
{ label: "叫料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
{ label: "目标库位", prop: "toLocationCode" },
{ label: "目标ERP库位", prop: "toLocationErpCode" },
{ label: "生成任务数量", prop: 'issuedQty' },
{ label: "已收数量", prop: 'receivedQty' },
{ label: "单据号", prop: 'number' },
// -----------------------------------------------------------------------
{ label: "标包数量", prop: 'stdPackQty' },
{ label: "生产线", prop: 'prodLine' },
{ label: "来源库区", prop: 'fromLocationArea' },
{ label: "工作中心", prop: 'workStation' },
{ label: "过期时间", prop: 'expiredTime' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: 'lastModifierId' },
{ label: "备注", prop: "remark" },
{ label: "事务ID", prop: "tenantId" },
{ label: "请求未发", prop: 'toBeIssuedQty' },
{ label: "已发未收", prop: 'toBeReceivedQty' },
{ label: "请求未收", prop: 'notFinishQty' },
// ************** 确定隐藏 ************************
// { label: "主表ID", prop: "masterID" },
// { label: "ID", prop: 'id' },
// ************** 确定隐藏 ************************
]
// 人工发料任务(装配)
export const IssueJobZP = [
{ label: "物品代码", prop: "itemCode", fixed: "left" },
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "状态", prop: "status", type: "filter", filters: "inventoryStage" },
{ label: "推荐批次", prop: "recommendLot" },
{ label: "实际批次", prop: "handledLot" },
{ label: "推荐数量", prop: 'recommendQty' },
{ label: "实际数量", prop: 'handledQty' },
{ label: "推荐箱码", prop: "recommendPackingCode" },
{ label: "实际箱码", prop: "handledPackingCode" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
{ label: "在途库位", prop: 'onTheWayLocationCode' },
// -----------------------------------------------------------------------
{ label: "标包数量", prop: "stdPackQty" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: 'lastModifierId' },
{ label: "任务编号", prop: 'number',width: orderWidth },
{ label: "备注", prop: 'remark' },
{ label: "推荐库位", prop: 'recommendFromLocationCode' },
{ label: "推荐区域", prop: 'recommendFromLocationArea' },
{ label: "推荐分组", prop: 'recommendFromLocationGroup' },
{ label: "推荐ERP库位", prop: 'recommendFromLocationErpCode' },
{ label: "推荐仓库", prop: 'recommendFromWarehouseCode' },
{ label: "计量单位", prop: 'uom' },
{ label: "实际库位", prop: 'handledFromLocationCode' },
{ label: "实际区域", prop: 'handledFromLocationArea' },
{ label: "实际分组", prop: 'handledFromLocationGroup' },
{ label: "实际ERP库位", prop: 'handledFromLocationErpCode' },
{ label: "实际仓库", prop: 'handledFromWarehouseCode' },
{ label: "到库区", prop: 'toLocationArea' },
{ label: "到库位组", prop: 'toLocationGroup' },
{ label: "到ERP库位", prop: 'toLocationErpCode' },
{ label: "到仓库", prop: 'toWarehouseCode' },
{ label: "推荐供应商批次", prop: 'recommendSupplierBatch' },
{ label: "实际供应商批次", prop: 'handledSupplierBatch' },
{ label: "推荐到货时间", prop: 'recommendArriveDate', type: "dateTime" },
{ label: "实际到货时间", prop: 'handledArriveDate', type: "dateTime" },
{ label: "推荐生产时间", prop: 'recommendProduceDate', type: "dateTime" },
{ label: "实际生产时间", prop: 'handledProduceDate', type: "dateTime" },
{ label: "推荐过期时间", prop: 'recommendExpireDate', type: "dateTime" },
{ label: "实际过期时间", prop: 'handledExpireDate', type: "dateTime" },
{ label: "请求库位", prop: 'requestLocationCode' },
{ label: "到库位", prop: 'toLocationCode' },
{ label: "生产线", prop: 'prodLine' },
{ label: "工作中心", prop: 'workStation' },
{ label: "过期时间", prop: 'expiredTime' },
{ label: "工序", prop: 'operation' },
{ label: "取整后数量", prop: 'roundedQty' },
{ label: "计划开始时间", prop: 'planBeginTime' },
{ label: "每次配送数量", prop: 'deliveryQty' },
{ label: "事务ID", prop: "tenantId" },
// ************** 确定隐藏 ************************
// { label: "distributionType", prop: 'distributionType' },
// { label: "plannedSplitRule", prop: 'plannedSplitRule' },
// { label: "truncType", prop: 'truncType' },
// { label: "ID", prop: 'id' },
// { label: "主表ID", prop: "masterID" },
// ************** 确定隐藏 ************************
]
// 人工发料记录(装配)
export const IssueNoteZP = [
{ label: "物品代码", prop: "itemCode",fixed: "left" },
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
{ label: "来源库位", prop: "fromLocationCode" },
{ label: "来源ERP库位", prop: 'fromLocationErpCode' },
{ label: "目标库位", prop: "toLocationCode" },
{ label: "目标ERP库位", prop: 'toLocationErpCode' },
{ label: "在途库位", prop: 'onTheWayLocationCode' },
// -----------------------------------------------------------------------
{ label: "生效日期", prop: "arriveDate", type: "dateTime" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: 'lastModifierId' },
{ label: "任务编号", prop: 'number',width: orderWidth },
{ label: "备注", prop: 'remark' },
{ label: "来源仓库", prop: 'fromWarehouseCode' },
{ label: "目标仓库", prop: 'toWarehouseCode' },
{ label: "标包数量", prop: 'stdPackQty' },
{ label: "来源箱码", prop: 'fromPackingCode' },
{ label: "目标箱码", prop: 'toPackingCode' },
{ label: "来源批次", prop: 'fromLot' },
{ label: "目标批次", prop: 'toLot' },
{ label: "供应商批次", prop: 'supplierBatch' },
{ label: "生产时间", prop: 'produceDate', type: "dateTime" },
{ label: "过期日期", prop: 'expireDate', type: "dateTime" },
{ label: "来源库位组", prop: 'fromLocationGroup' },
{ label: "目标库位组", prop: 'toLocationGroup' },
{ label: "来源库区", prop: 'fromLocationArea' },
{ label: "目标库区", prop: 'toLocationArea' },
{ label: "推荐箱码", prop: "recommendPackingCode" },
{ label: "发料时间", prop: 'issueTime', type: "dateTime" },
{ label: "生产线", prop: 'prodLine' },
{ label: "工作中心", prop: 'workStation' },
{ label: "事务ID", prop: "tenantId" },
{ label: "推荐数量", prop: 'recommendQty' },
{ label: "实际批次", prop: "handledLot" },
{ label: "实际库位", prop: 'handledFromLocationCode' },
{ label: "实际区域", prop: 'handledFromLocationArea' },
{ label: "实际分组", prop: 'handledFromLocationGroup' },
{ label: "实际ERP库位", prop: 'handledFromLocationErpCode' },
{ label: "实际仓库", prop: 'handledFromWarehouseCode' },
{ label: "推荐库位", prop: 'recommendFromLocationCode' },
{ label: "推荐区域", prop: 'recommendFromLocationArea' },
{ label: "推荐分组", prop: 'recommendFromLocationGroup' },
{ label: "推荐ERP库位", prop: 'recommendFromLocationErpCode' },
{ label: "推荐仓库", prop: 'recommendFromWarehouseCode' },
{ label: "实际数量", prop: 'handledQty' },
{ label: "实际箱码", prop: "handledPackingCode" },
{ label: "推荐批次", prop: "recommendLot" },
{ label: "推荐供应商批次", prop: 'recommendSupplierBatch' },
{ label: "实际供应商批次", prop: 'handledSupplierBatch' },
{ label: "推荐到货时间", prop: 'recommendArriveDate', type: "dateTime" },
{ label: "实际到货时间", prop: 'handledArriveDate', type: "dateTime" },
{ label: "推荐生产时间", prop: 'recommendProduceDate', type: "dateTime" },
{ label: "实际生产时间", prop: 'handledProduceDate', type: "dateTime" },
{ label: "推荐过期时间", prop: 'recommendExpireDate', type: "dateTime" },
{ label: "实际过期时间", prop: 'handledExpireDate', type: "dateTime" },
// ************** 确定隐藏 ************************
// { label: "fromStatus", prop: 'fromStatus' },
// { label: "toStatus", prop: 'toStatus' },
// { label: "ID", prop: 'id' },
// { label: "主表ID", prop: "masterID" },
// ************** 确定隐藏 ************************
]
// 库存转移申请
export const LibraryShiftRequest = [
{ label: "物品代码", prop: "itemCode" },

98
fe/PC/src/utils/tableColumns/index.js

@ -4380,6 +4380,104 @@ export const IssueNotePT = [
// ************** 确认隐藏 ************************
]
// 人工发料申请(装配)
export const IssueRequestZP = [
{
label: "叫料申请编号",
prop: "number",
fixed: "left",
type: "name",
width: orderWidth
},
{ label: "状态", prop: "requestStatus", type: "tagFilter", filters: "requestStatus" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
{ label: "操作员", prop: "worker" },
{ label: "备注", prop: 'remark' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "生效日期", prop: 'activeDate', type: "dateTime" },
// { label: "叫料类型", prop: 'type' },
{ label: "备料计划单号", prop: 'preparationPlanNumber',width: orderWidth },
{ label: "生产线", prop: 'prodLine' },
{ label: "车间", prop: 'workshop' },
{ label: "使用在途库", prop: 'useOnTheWayLocation', type: "filter", filters: "whetherOrNot" },
// ************** 确认隐藏 ************************
// { label: "自动提交审批", prop: 'autoSubmit', type: "filter", filters: "whetherOrNot" },
// { label: "自动审批通过", prop: 'autoAgree', type: "filter", filters: "whetherOrNot" },
// { label: "自动执行", prop: 'autoHandle', type: "filter", filters: "whetherOrNot" },
// { label: "自动完成任务", prop: 'autoCompleteJob', type: "filter", filters: "whetherOrNot" },
// { label: "直接生成记录", prop: 'directCreateNote', type: "filter", filters: "whetherOrNot" },
// { label: "创建者ID", prop: 'creatorId' },
// { label: "事务ID", prop: "tenantId" },
// ************** 确认隐藏 ************************
]
// 人工发料任务(装配)
export const IssueJobZP = [
{
label: "发料任务编号",
prop: "number",
fixed: "left",
type: "name",
width: orderWidth
},
{ label: "状态", prop: "jobStatus",type: "tagFilter", filters: "jobStatus" },
{ label: "申请单号", prop: "materialRequestNumber",width: orderWidth },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
{ label: "完成时间", prop: "completeTime", type: "dateTime" },
{ label: "操作员", prop: 'worker' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "备注", prop: 'remark' },
{ label: "仓库代码", prop: 'warehouseCode' },
{ label: "上游任务编号", prop: 'upStreamJobNumber' },
{ label: "任务类型", prop: 'jobType' },
{ label: "优先级", prop: 'priority' },
{ label: "优先级增量", prop: 'priorityIncrement' },
{ label: "工作组", prop: 'workGroupCode' },
{ label: "承接者用户名", prop: 'acceptUserName' },
{ label: "承接时间", prop: 'acceptTime', type: "dateTime" },
{ label: "完成者用户名", prop: 'completeUserName' },
{ label: "任务描述", prop: 'jobDescription' },
{ label: "叫料请求类型", prop: 'requestType' },
{ label: "生产线", prop: 'prodLine' },
{ label: "车间", prop: 'workshop' },
{ label: "使用在途库", prop: 'useOnTheWayLocation', type: "filter", filters: "whetherOrNot" },
// ************** 确认隐藏 ************************
// { label: "是否自动完成", prop: 'isAutoComplete', type: "filter", filters: "whetherOrNot" },
// { label: "创建者ID", prop: 'creatorId' },
// { label: "上次修改者ID", prop: "lastModifierId" },
// { label: "事务ID", prop: "tenantId" },
// { label: "承接者ID", prop: 'acceptUserId' },
// { label: "完成者", prop: 'completeUserId' },
// ************** 确认隐藏 ************************
]
// 人工发料记录(装配)
export const IssueNoteZP = [
{
label: "发料记录单号",
prop: "number",
fixed: "left",
type: "name",
width: orderWidth
},
{ label: "申请单号", prop: 'requestNumber',width: orderWidth },
{ label: "任务单号", prop: 'jobNumber',width: orderWidth },
{ label: "创建时间", prop: "creationTime",type: "dateTime" },
{ label: "操作员", prop: 'worker' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "备注", prop: 'remark' },
{ label: "生效日期", prop: 'activeDate',type: "dateTime" },
{ label: "车间", prop: 'workshop' },
{ label: "叫料请求类型", prop: 'requestType' },
{ label: "使用在途库", prop: 'useOnTheWayLocation', type: "filter", filters: "whetherOrNot" },
{ label: "已确认", prop: 'confirmed',type: "filter", filters: "whetherOrNot" },
{ label: "确认时间", prop: 'confirmTime' },
// ************** 确认隐藏 ************************
// { label: "创建者ID", prop: 'creatorId' },
// { label: "上次修改者ID", prop: "lastModifierId" },
// { label: "事务ID", prop: "tenantId" },
// ************** 确认隐藏 ************************
]
// 库存转移申请
export const LibraryShiftRequest = [
{ label: "申请编号", prop: "number" },

83
fe/PC/src/utils/tabsDesTions/index.js

@ -3222,6 +3222,89 @@ export const IssueNotePT = [
// ************** 确认隐藏 ************************
]
// 人工发料申请(装配)
export const IssueRequestZP = [
{ label: "申请编号", prop: "number" },
{ label: "状态", prop: "requestStatus",type: "filter", filters: "requestStatus" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
{ label: "操作员", prop: "worker" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: "lastModifierId" },
{ label: "自动提交审批", prop: 'autoSubmit', type: "filter", filters: "whetherOrNot" },
{ label: "自动审批通过", prop: 'autoAgree', type: "filter", filters: "whetherOrNot" },
{ label: "自动执行", prop: 'autoHandle', type: "filter", filters: "whetherOrNot" },
{ label: "自动完成任务", prop: 'autoCompleteJob', type: "filter", filters: "whetherOrNot" },
{ label: "直接生成记录", prop: 'directCreateNote', type: "filter", filters: "whetherOrNot" },
{ label: "使用在途库", prop: 'useOnTheWayLocation', type: "filter", filters: "whetherOrNot" },
{ label: "备注", prop: 'remark' },
{ label: "创建者ID", prop: "creatorId" },
{ label: "事务ID", prop: "tenantId" },
{ label: "生效日期", prop: 'activeDate', type: "dateTime" },
{ label: "备料计划单号", prop: 'preparationPlanNumber' },
{ label: "生产线", prop: 'prodLine' },
{ label: "车间", prop: 'workshop' },
// ************** 确认隐藏 ************************
// { label: "ID", prop: 'id' },
// { label: "叫料类型", prop: 'type' },
// ************** 确认隐藏 ************************
]
// 人工发料任务(装配)
export const IssueJobZP = [
{ label: "发料任务编号", prop: "number" },
{ label: "申请单号", prop: "materialRequestNumber" },
{ label: "状态", prop: "jobStatus", type: "filter", filters: "jobStatus" },
{ label: "创建时间", prop: "creationTime",type: "dateTime" },
{ label: "操作员", prop: 'worker' },
{ label: "是否自动完成", prop: 'isAutoComplete', type: "filter", filters: "whetherOrNot" },
{ label: "承接用户", prop: 'acceptUserName' },
{ label: "承接时间", prop: 'acceptTime', type: "dateTime" },
{ label: "完成用户", prop: 'completeUserName' },
{ label: "完成时间", prop: "completeTime", type: "dateTime" },
{ label: "叫料请求类型", prop: 'requestType' },
{ label: "使用在途库", prop: 'useOnTheWayLocation', type: "filter", filters: "whetherOrNot" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: "lastModifierId" },
{ label: "备注", prop: 'remark' },
{ label: "上游任务编号", prop: 'upStreamJobNumber',},
{ label: "任务类型", prop: "jobType", type: "filter", filters: "taskType" },
{ label: "优先级", prop: 'priority' },
{ label: "优先级增量", prop: 'priorityIncrement' },
{ label: "事务ID", prop: "tenantId" },
{ label: "工作组", prop: 'workGroupCode' },
{ label: "创建者ID", prop: "creatorId" },
{ label: "承接者ID", prop: 'acceptUserId' },
{ label: "完成者ID", prop: 'completeUserId' },
{ label: "任务描述", prop: 'jobDescription' },
{ label: "生产线", prop: 'prodLine' },
{ label: "车间", prop: 'workshop' },
{ label: "仓库代码", prop: 'warehouseCode' },
// ************** 确认隐藏 ************************
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
// 人工发料记录(装配)
export const IssueNoteZP = [
{ label: "发料记录单号", prop: "number" },
{ label: "申请单号", prop: 'requestNumber' },
{ label: "任务单号", prop: 'jobNumber' },
{ label: "创建时间", prop: "creationTime",type: "dateTime" },
{ label: "操作员", prop: 'worker' },
{ label: "叫料请求类型", prop: 'requestType' },
{ label: "使用在途库", prop: 'useOnTheWayLocation', type: "filter", filters: "whetherOrNot" },
{ label: "已确认", prop: 'confirmed',type: "filter", filters: "whetherOrNot" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
{ label: "上次修改者ID", prop: "lastModifierId" },
{ label: "创建者ID", prop: "creatorId" },
{ label: "备注", prop: 'remark' },
{ label: "事务ID", prop: "tenantId" },
{ label: "生效日期", prop: 'activeDate', type: "dateTime" },
{ label: "车间", prop: 'workshop' },
{ label: "确认时间", prop: 'confirmTime', type: "dateTime" },
// ************** 确认隐藏 ************************
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
// 库存转移申请
export const LibraryShiftRequest = [
{ label: "申请编号", prop: "number" },

12
fe/PC/src/views/basicData/WorkshopManage/ProductionLine.vue

@ -219,16 +219,16 @@ export default {
code: [{ required: true, trigger: "blur", message: "不可为空" }],
type: [{ required: true, trigger: "blur", message: "不可为空" }],
// workshopCode: [{ required: true, trigger: "change", message: "" }],
rawLocationCode: [{ required: true, trigger: "change", message: "不可为空" }],
rawLocationGroupCode: [{ required: true, trigger: "change", message: "不可为空" }],
productLocationCode: [{ required: true, trigger: "change", message: "不可为空" }],
rawLocationCode_show: [{ required: true, trigger: "change", message: "不可为空" }],
rawLocationGroupCode_show: [{ required: true, trigger: "change", message: "不可为空" }],
productLocationCode_show: [{ required: true, trigger: "change", message: "不可为空" }],
},
editRule: {
type: [{ required: true, trigger: "blur", message: "不可为空" }],
// workshopCode: [{ required: true, trigger: "change", message: "" }],
rawLocationCode: [{ required: true, trigger: "change", message: "不可为空" }],
rawLocationGroupCode: [{ required: true, trigger: "change", message: "不可为空" }],
productLocationCode: [{ required: true, trigger: "change", message: "不可为空" }],
rawLocationCode_show: [{ required: true, trigger: "change", message: "不可为空" }],
rawLocationGroupCode_show: [{ required: true, trigger: "change", message: "不可为空" }],
productLocationCode_show: [{ required: true, trigger: "change", message: "不可为空" }],
}
},
};

69
fe/PC/src/views/finishedProductManage/dismantle/customerDismantleJob.vue

@ -68,7 +68,8 @@ import {
getPageList,
getBomByComponentTree,
productRecycleNoteExport,
productionRecycleJobHandle
productionRecycleJobHandle,
productionRecycleJobComplete
} from "@/api/wms-api";
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
@ -115,13 +116,20 @@ export default {
DrawerButtonData: [
{
type: 'warning',
icon: 'el-icon-circle-check',
label: '执行',
name: "handle",
// todo:
hide: () => { return this.hideButton([1]) },
size: 'mini'
},
{
type: 'success',
label: '完成',
name: "complete",
// todo:
hide: () => { return this.hideButton([1]) },
size: 'mini'
},
],
//
CreateFormData: {
@ -139,7 +147,7 @@ export default {
type: "number",
trigger: ["blur"],
validator: (rule, value, callback) => {
//
// todo:recommendQty
let _InventoryQty = Number(this.propsData.details[0].recommendQty)
if(_InventoryQty < value){
return callback(new Error(`数量不能大于库存数量${_InventoryQty}`))
@ -171,13 +179,14 @@ export default {
}],
successHandle:[
{
label:"下载",
label:"下载报告",
click:(()=>{
this.downloadReport()
})
}
],
bomList:null,
submitRes:null,//
};
},
mounted () {
@ -185,10 +194,13 @@ export default {
},
methods: {
drawerbuttonHandle(val){
//
if (val == "handle") {
this.formTitle = this.$route.meta.title + "执行";
this.displayDialog.newDialog = true
this.CreateFormData = JSON.parse(JSON.stringify(this.propsData));
// todo:
this.CreateFormData.qty = this.propsData.details[0].recommendQty
this.childTableData = [{
partCode:undefined,
qty:undefined,
@ -199,7 +211,20 @@ export default {
warehouseCode:undefined,
}]
this.theEvent = "edit"
}else{
}
//
else if(val == "complete"){
// todo:,wsm-apiproductionRecycleJobComplete
this.Loading.appMainLoading = true
productionRecycleJobComplete(this.propsData.id).then(res => {
this.Loading.appMainLoading = false
this.paging()
this.displayDialog.detailsDialog = false
}).catch(err => {
this.Loading.appMainLoading = false
})
}
else{
this.drawerbutton(val)
}
},
@ -226,39 +251,31 @@ export default {
detailsClear(data){
console.log(data)
},
//-
blob(res, fileName) {
let blob = new Blob([res], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8',
})
const href = URL.createObjectURL(blob) //URLblob
const a = document.createElement('a') //a
a.style.display = 'none'
a.href = href //
a.download = fileName //
a.click() //
URL.revokeObjectURL(a.href) //URL
},
//
downloadReport(){
//
// todo:
let _data = {
maxResultCount: 999999,
maxResultCount: 20,
skipCount: 0,
sorting: "",
route: "wms/store/product-recycle-note/export-product-recycle",
function: "????",//
// todo:
function: "客户退拆记录",//
condition: {
"filters": []
filters: [
{
logic: "And",
column: "number",
action: "==",
value: this.submitRes.remark
}
]
}
}
this.Loading.appMainLoading = true
productRecycleNoteExport(_data)
.then(res=>{
this.Loading.appMainLoading = false
this.blob(res,'???报告')//
this.blob(res,'客户退拆记录报告')//
})
.catch(err=>{
this.Loading.appMainLoading = false
@ -282,6 +299,7 @@ export default {
let _itemInfo = this.propsData.details[0]
let _data = JSON.parse(JSON.stringify(_jobInfo))
_data.details[0].materialDetails = [],//
_data.details[0].qty = Number(this.CreateFormData.qty)
this.bomList.forEach((item,index)=>{
let _item = {
itemCode: item.component,
@ -294,10 +312,11 @@ export default {
}
_data.details[0].materialDetails.push(_item)
})
console.log(247,_data)
this.Loading.appMainLoading = true
this.submitRes = null
productionRecycleJobHandle(_jobInfo.id,_data).then(res => {
this.Loading.appMainLoading = false
this.submitRes = res
resolve();
}).catch(err => {
this.Loading.appMainLoading = false

49
fe/PC/src/views/finishedProductManage/dismantle/customerDismantleNote.vue

@ -29,10 +29,10 @@
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:propsData="propsData"
:Butttondata="[]"
:Butttondata="DrawerButtonData"
:tabsDesTions="tabsDesTions"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@drawerbutton="drawerbuttonHandle"
@handleCommand="drawerHandle"
@close-value="closeValue"
:tableColumns="detailsTableColumns"
@ -46,7 +46,7 @@
</div>
</template>
<script>
import { getDetailed, getPageList } from "@/api/wms-api";
import { getDetailed, getPageList, productRecycleNoteExport} from "@/api/wms-api";
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
@ -88,6 +88,13 @@ export default {
functionName: 'customerDismantleBackFlushNote'//wms-api.js
},
],
DrawerButtonData: [
{
label: '下载报告',
name: "download",
size: 'mini'
},
],
};
},
mounted () {
@ -148,6 +155,42 @@ export default {
this.Loading.DrawerLoading = false
})
},
downloadReport(){
//
let _data = {
maxResultCount: 20,
skipCount: 0,
sorting: "",
route: "wms/store/product-recycle-note/export-product-recycle",
function: "客户退拆记录",//
condition: {
filters: [
{
logic: "And",
column: "number",
action: "==",
value: this.propsData.number
}
]
}
}
this.Loading.appMainLoading = true
productRecycleNoteExport(_data)
.then(res=>{
this.Loading.appMainLoading = false
this.blob(res,'客户退拆记录报告')//
})
.catch(err=>{
this.Loading.appMainLoading = false
})
},
drawerbuttonHandle(val){
if (val == "download") {
this.downloadReport()
}else{
this.drawerbutton(val)
}
},
}
};
</script>

548
fe/PC/src/views/materialIssueManage/ZP/IssueJobZP.vue

@ -0,0 +1,548 @@
<template>
<div class="page-box" v-loading="Loading.appMainLoading">
<tablePagination
:currenButtonData="currenButtonData"
:tableData="tableData"
:tableLoading="Loading.tableLoading"
:tableColumns="tableColumns"
@rowDrop="rowDrop"
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
@topbutton="topbutton"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@alterResultCount="alterResultCount"
@handleSelectionChange="handleSelectionChange"
:currentPageProps="oldSkipCount"
:quicklySearchOption="quicklySearchOption"
@quicklySearchClick="quicklySearchClick"
@quicklySearchClear="quicklySearchClear"
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
>
</tablePagination>
<!-- 执行 -->
<handelFrom
:formTitle="formTitle"
:displayDialog.sync="displayDialog.handleFromDialog"
:CreateFormData="handleFormData"
:CreateForm="handleForm"
:Rules="editRules.handleRule"
:Options="editOptions"
:detailsTableColumns="handleDetailsTableColumns"
:isShowIndex="true"
:selectionTable="true"
@handleSelectionChange="handleSelectionChange"
@FormSubmit="handleFormSubmit"
></handelFrom>
<curren-Drawer
:title="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
:Butttondata="DrawerButtonData"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@close-value="closeValue"
:currenButtonData="currenButtonData"
:tableColumns="detailsTableColumns"
:totalCount="totalCountDetails"
:MaxResultCount="MaxResultCountDetails"
@alterResultCountDetails="alterResultCountDetails"
@alertoldSkipCountDetails="alertoldSkipCountDetails"
></curren-Drawer>
</div>
</template>
<script>
import { getPageList, createAndHandle } from "@/api/wms-api"
import { materialRequestByType, handle} from "@/api/wms-job"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import { newAndEdiDialogMixins } from "@/mixins/newAndEdiDialogMixins"
import store from '@/store'
import { initPrintAllData } from "@/mixins/printMixin"
export default {
name: "IssueJobZP",
mixins: [
tableMixins,
LoadingMixins,
drawerMixins,
TableHeaderMixins,
mixins,
newAndEdiDialogMixins
],
computed: {
editDialog: {
get: function () {
return this.displayDialog.newDialog || this.displayDialog.editDialog;
},
},
// hideButton: function () {
// return function (val) {
// let data = true
// val.forEach(key => {
// if (this.propsData.jobStatus == key) {
// data = false
// }
// })
// return data
// }
// },
},
data () {
return {
URL: 'wms/store/issue-job',
tableLoading: false,
handleMultipleSelection: [],
//
currenButtonData: [
// this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
],
DrawerButtonData: [
{
type: 'info',
icon: 'el-icon-printer',
label: '打印',
hide: false,
name: "print",
size: 'mini'
},
],
handleDetailsTableColumns: [
{ label: "物品代码", prop: "itemCode", },
{ label: "物品名称", prop: "itemName" },
{ label: "实际库位", prop: "handledLocationCode", },
{ label: "推荐库位", prop: "recommendLocationCode", },
{ label: "实际箱标签", prop: "handledPackingCode", },
{ label: "推荐箱标签", prop: "recommendPackingCode", },
{ label: "实际批次", prop: "handledLot", },
{ label: "推荐批次", prop: "recommendLot", },
{ type: "object", label: "实际数量", prop: "handledQty", showProp: "qty", },
{ type: "object", label: "实际单位", prop: "handledQty", showProp: "uom", },
{ type: "object", label: "推荐数量", prop: "recommendQty", showProp: "qty", },
{ type: "object", label: "推荐单位", prop: "recommendQty", showProp: "uom", },
],
editOptions: {
},
handleFormData: {
id: null,
creationTime: null,
IssueNoteNumber: "123",
lastModificationTime: null,
remark: null,
concurrencyStamp: null,
company: null,
number: null,
upStreamJobNumber: null,
materialRequestNumber: null,
jobType: 1,
jobStatus: 1,
priority: 0,
priorityIncrement: 0,
wlgCode: "123",
isAutoComplete: true,
details: [],
acceptTime: null,
completeTime: null,
prodLine: null,
toLocationCode: null,
},
childTableData: [
{
"id": null,
"creationTime": null,
// "creatorId": null,
"lastModificationTime": null,
// "lastModifierId": null,
"remark": null,
"concurrencyStamp": null,
"masterID": null,
"packingCode": null,
"containerCode": null,
"item": {
"id": null,
"name": null,
"desc1": null,
"desc2": null
},
"itemCode": null,
"stdPack": {
"packUom": null,
"packQty": 0
},
"recommendBatch": {
"supplierBatch": null,
"produceDate": null
},
"recommendLot": "",
"recommendLocationCode": "",
"recomendQty": {
"uom": null,
"qty": 0
},
"handledBatch": {
"supplierBatch": null,
"produceDate": null
},
"handledLot": "",
"handledLocationCode": "",
"handledQty": {
"uom": null,
"qty": 0
},
"fromLocation": "",
"toLocation": "",
"workshop": null,
"prodLine": null,
"workCenter": null,
}
],
handleForm: [
{ type: "input", label: "任务编号", prop: "number", colSpan: 12, disabled: "true" },
{ type: "input", label: "到货编号", prop: "arriveNumber", colSpan: 12, disabled: "true" },
{ type: "select", label: "任务类型", prop: "jobType", options: "taskType", colSpan: 12, disabled: "true" },
{ type: "select", label: "任务状态", prop: "jobStatus", options: "jobStatus", colSpan: 12, disabled: "true" },
{ type: "input", label: "优先级", prop: "priority", colSpan: 12, disabled: "true" },
{ type: "input", label: "工作组", prop: "wlgCode", colSpan: 12, disabled: "true" },
{ type: "dateTime", label: "接收时间", prop: "acceptTime", colSpan: 12, },
{ type: "input", label: "备注", prop: "remark", colSpan: 12, },
{ type: "input", label: "生产线", prop: "prodLine", disabled: "true", colSpan: 12, },
// { type: "autocomplete", label: "", prop: "toLocationCode", optionsLabel: "itemCode", optionsValue: "locationCode", focus: (val) => { return this.getSelectList(val, "wms/inventory/Inventory-Balance") }, click: (val) => { this.filterTable(val, 'wms/inventory/Inventory-Balance', 'InventoryBalance-PullForm', '') }, colSpan: 12 },
{ type: "autocomplete", label: "目标库位", prop: "toLocationCode", optionsLabel: "name", optionsValue: "code", focus: (val) => { return this.getSelectList(val, "basedata/Location") }, click: (val) => { this.filterTable(val, 'basedata/Location', 'InventoryBalance-PullForm', '库位选择') }, colSpan: 12 },
],
editRules: {
handleRule: {
number: [
{ required: true, trigger: "blur", message: "不可为空" },
],
jobType: [{ required: true, trigger: "blur", message: "不可为空" }],
jobStatus: [{ required: true, trigger: "blur", message: "不可为空" }],
priority: [{ required: true, trigger: "blur", message: "不可为空" }],
wlgCode: [{ required: true, trigger: "blur", message: "不可为空" }],
},
cerateRule: {
itemCode: [{ required: true, trigger: "blur", message: "不可为空" }],
toLocationCode: [{ required: false, trigger: "blur", message: "不可为空" }],
numberInput: [{ required: true, trigger: "blur", message: "不可为空" }],
}
},
};
},
mounted () {
this.paging();
},
methods: {
//
paging(callback) {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
let params = {
requestType: 'Issue_Manual'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params)
.then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.pagingCallback(callback)
}).catch(err => {
this.Loading.tableLoading = false
})
},
handleFormSubmit (val) {
let that = this
return new Promise((resolve, reject) => {
if (that.handleMultipleSelection.length == 0) {
that.$errorMsg('请先择提交的数据!')
reject()
} else {
if (that.handleMultipleSelection[0].requestLocationCode != that.handleFormData.toLocationCode) {
that.$confirm('目标库位与需求库位不一致,是否要将所有物品发到目标库位?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
that.checkHandleSubmit(resolve, reject)
}).catch(() => {
reject()
})
} else {
that.$confirm('是否要将物品发到目标库位:[' + that.handleFormData.toLocationCode + ']', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
that.checkHandleSubmit(resolve, reject)
}).catch(() => {
reject()
})
}
}
})
},
checkHandleSubmit(resolve, reject) {
let that = this
let items = that.handleMultipleSelection.filter(r => {
return (r.handledPackingCode === null || r.handledPackingCode === '')
})
if (items.length > 0) {
let packingCodes = '';
items.forEach(r => {
packingCodes += r.recommendPackingCode + ','
})
that.$confirm('以下箱码对应的实际箱码为空,是否要继续发料?:[' + packingCodes + ']', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
that.finshIssueJobHandle(resolve, reject)
}).catch(() => {
return reject()
})
} else {
that.finshIssueJobHandle(resolve, reject)
}
},
finshIssueJobHandle(resolve, reject) {
let that = this
let data = {
id: that.propsData.id
}
that.handleMultipleSelection.forEach(item => {
item.toLocationCode = that.handleFormData.toLocationCode
item.handledContainerCode = item.recommendContainerCode;
item.handledPackingCode = item.recommendPackingCode;
item.handledBatch = item.recommendBatch;
item.handledLot = item.recommendLot;
item.handledLocationCode = item.recommendLocationCode;
})
let params = JSON.parse(JSON.stringify(that.handleFormData))
delete params.details
params.details = that.handleMultipleSelection
handle(params, data, that.URL).then(res => {
that.displayDialog.handleFromDialog = false;
that.$successMsg('已生成发料记录!')
that.paging()
return resolve()
}).catch(err => {
return reject();
})
},
//
changeInput(prop, val) {
let that = this
if (prop == 'numberInput' ) {
this.$confirm('是否要将以下所有零件的需求数量更改为[' + val + ']', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
that.CreateFormData.details.forEach(item => {
item.numberDetails = parseInt(val)
})
}).catch(() => {
})
}
},
//table
deleteRow(index, rows) {
rows.splice(index, 1);
},
//-
FormClick(val) {
let that = this
if (val[0] == 0) {
} else if (val[0] == 1) {
//
this.editRules.cerateRule.toLocationCode[0].required = false
val[1].validate((valid) => {
if (valid) {
this.tableLoading = true
let params = {
condition: {
filters: [
{
logic: "And",
column: "code",
action: "==",
value: that.CreateFormData.itemCode
}
]
},
Sorting: "",
SkipCount: 0,
MaxResultCount: 100
}
getPageList(params, 'basedata/item-basic').then(res => {
if (res.items.length == 0) {
this.$errorMsg('未查询到该物品信息!')
} else {
let findRs = that.CreateFormData.details.find(item => (
item.code == that.CreateFormData.itemCode
))
if (!findRs) {
res.items.forEach(item => {
item.numberDetails = 0
that.CreateFormData.details.push(item)
})
}
}
this.tableLoading = false
}).catch(err => {
console.log(err)
this.tableLoading = false
})
} else {
this.$errorMsg('请检查表单')
}
})
} else {
this.editRules.cerateRule.toLocationCode[0].required = true
val[1].validate((valid) => {
if (valid) {
if (this.CreateFormData.details.length > 0) {
let params = {
worker: store.getters.name.userName,
company: localStorage.getItem("company"),
details: [],
}
for (var i = 0; i < this.CreateFormData.details.length; i++) {
if (this.CreateFormData.details[i].numberDetails <= 0) {
this.$errorMsg('物品[' + this.CreateFormData.details[i].code + ']的数量应该大于0')
return
} else {
params.details.push({
itemCode: this.CreateFormData.details[i].code,
item: {
id: this.CreateFormData.details[i].id,
name: this.CreateFormData.details[i].name,
desc1: this.CreateFormData.details[i].desc1,
desc2: this.CreateFormData.details[i].desc2,
},
qty: {
uom: this.CreateFormData.details[i].basicUom,
qty: this.CreateFormData.details[i].numberDetails
},
prodLine: '',
status: this.CreateFormData.details[i].status,
toLocationCode: this.CreateFormData.toLocationCode,
worker: store.getters.name.userName,
})
}
}
this.Loading.newAndEdiLoading = true
createAndHandle(params).then( res => {
this.displayDialog.newDialog = false
this.Loading.newAndEdiLoading = false
this.$successMsg("发料任务创建成功!")
this.paging()
}).catch(err => {
console.log(err)
this.Loading.newAndEdiLoading = false
})
} else {
this.$errorMsg('无数据可提交!')
}
} else {
this.$errorMsg('请检查表单')
}
})
}
},
drawerbutton (val) {
//
if(val == 'print'){
let _propsData = JSON.parse(JSON.stringify(this.tableDataDetails))
_propsData.title = "线边仓领料单"
_propsData.details.forEach(item=>{
item.recommendLot = item.recommendLot + " "
})
let _option = {
details:{
fromLocationCode:"recommendFromLocationCode",
qty:"handledQty",
fromLot:"recommendLot",
fromLocationErpCode:"recommendFromLocationErpCode",
}
}
let data = initPrintAllData(_propsData,'xbcll.rdlx',false,_option);
this.Print(data)
} else {
drawerMixins.methods.drawerbutton(val, this)
}
},
// drawerbutton(val) {
// if (val == 'handleJob') {
// this.Loading.appMainLoading = true
// let propsData = JSON.parse(JSON.stringify(this.propsData));
// this.$listAssign(this.handleFormData, propsData)
// this.handleFormData.toLocationCode = this.handleFormData.details[0].toLocationCode
// this.handleMultipleSelection = []
// this.Loading.appMainLoading = false
// this.formTitle = "" + this.$route.meta.title;
// this.displayDialog.handleFromDialog = true
// } else {
// drawerMixins.methods.drawerbutton(val, this)
// }
// },
handleSelectionChange(val) {
this.handleMultipleSelection = val
}
}
};
</script>
<style lang="scss" scoped>
@import "../../../styles/mainbasicData.scss";
::v-deep .newAndEdiDialog {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
.el-form {
flex: 1;
display: flex;
justify-content: flex-start;
align-content: flex-start;
flex-wrap: wrap;
overflow: hidden;
overflow-y: auto;
}
.screen-push {
color: rgb(64, 158, 255);
span {
cursor: pointer;
&:hover {
color: blue;
}
}
}
.formButton {
padding: 20px 20px 20px 0;
}
.formTable-box {
height: 70% !important;
.el-form-item__content {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
margin: 0 !important;
}
}
}
</style>

129
fe/PC/src/views/materialIssueManage/ZP/IssueNoteZP.vue

@ -0,0 +1,129 @@
<template>
<div class="page-box" v-loading="Loading.appMainLoading">
<tablePagination
:currenButtonData="currenButtonData"
:tableData="tableData"
:tableLoading="Loading.tableLoading"
:tableColumns="tableColumns"
@rowDrop="rowDrop"
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
@topbutton="topbutton"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@alterResultCount="alterResultCount"
@handleSelectionChange="handleSelectionChange"
:currentPageProps="oldSkipCount"
:quicklySearchOption="quicklySearchOption"
@quicklySearchClick="quicklySearchClick"
@quicklySearchClear="quicklySearchClear"
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
>
</tablePagination>
<!-- 抽屉 -->
<curren-Drawer
:title="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:propsData="propsData"
:Butttondata="DrawerButtonData"
:tabsDesTions="tabsDesTions"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@handleCommand="drawerHandle"
@close-value="closeValue"
:tableColumns="detailsTableColumns"
:totalCount="totalCountDetails"
:MaxResultCount="MaxResultCountDetails"
@alterResultCountDetails="alterResultCountDetails"
@alertoldSkipCountDetails="alertoldSkipCountDetails"
></curren-Drawer>
</div>
</template>
<script>
import { materialRequestByType } from "@/api/wms-api"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import { initPrintAllData } from "@/mixins/printMixin"
export default {
name: "IssueNoteZP",
mixins: [
tableMixins,
LoadingMixins,
drawerMixins,
TableHeaderMixins,
mixins,
],
data () {
return {
URL: 'wms/store/issue-note',
//
currenButtonData: [
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
],
DrawerButtonData: [
{
type: 'info',
icon: 'el-icon-printer',
label: '打印',
hide: false,
name: "print",
size: 'mini'
},
]
};
},
mounted () {
this.paging();
},
methods: {
//
paging(callback) {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
let params = {
requestType: 'Issue_Manual'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.pagingCallback(callback)
}).catch(err => {
this.Loading.tableLoading = false
})
},
drawerbutton (val) {
//
if(val == 'print'){
let _propsData = JSON.parse(JSON.stringify(this.tableDataDetails))
// _propsData.title = ""
_propsData.title = "线边仓领料单"
_propsData.details.forEach(item=>{
item.fromLot = item.fromLot + " "
})
let _option = {
number:"requestNumber",
}
let data = initPrintAllData(_propsData,'xbcll.rdlx',false,_option);
this.Print(data)
} else {
drawerMixins.methods.drawerbutton(val, this)
}
}
},
};
</script>
<style lang="scss" scoped>
@import "../../../styles/basicData.scss";
</style>

228
fe/PC/src/views/materialIssueManage/ZP/IssueRequestZP.vue

@ -0,0 +1,228 @@
<template>
<div class="page-box" v-loading="Loading.appMainLoading">
<tablePagination
:currenButtonData="currenButtonData"
:tableData="tableData"
:tableLoading="Loading.tableLoading"
:tableColumns="tableColumns"
@rowDrop="rowDrop"
:totalCount="totalCount"
:multipleSelection="multipleSelection"
:MaxResultCount="PageListParams.MaxResultCount"
@topbutton="topbutton"
@inlineDialog="inlineDialog"
@sortChange="sortChange"
@alertoldSkipCount="alertoldSkipCount"
@alterResultCount="alterResultCount"
@handleSelectionChange="handleSelectionChange"
:currentPageProps="oldSkipCount"
:quicklySearchOption="quicklySearchOption"
@quicklySearchClick="quicklySearchClick"
@quicklySearchClear="quicklySearchClear"
:primarySearchOption="primarySearchOption"
@overallSearchFormClick="overallSearchFormClick"
:httpOverallSearchData="httpOverallSearchData"
>
</tablePagination>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
:disabledMethod="{ method1: false, method2: false, method3: false }"
:disabledIsAllowPartImport="{
isAllowPartImport1: false,
isAllowPartImport2: false,
}"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
<curren-Drawer
:title="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
:Butttondata="DrawerButtonData"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@drawerbutton="drawerbutton"
@close-value="closeValue"
:currenButtonData="currenButtonData"
:tableColumns="detailsTableColumns"
:totalCount="totalCountDetails"
:MaxResultCount="MaxResultCountDetails"
@alterResultCountDetails="alterResultCountDetails"
@alertoldSkipCountDetails="alertoldSkipCountDetails"
></curren-Drawer>
</div>
</template>
<script>
import { materialRequestByType,processRequest,getDetailed } from "@/api/wms-api"
import { tableMixins } from "@/mixins/TableMixins"
import { LoadingMixins } from "@/mixins/LoadingMixins"
import { drawerMixins } from "@/mixins/drawerMixins"
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins"
import { mixins } from "@/mixins/mixins"
import { requestData } from "@/utils/processButtonData"
import requestDataNames from "@/utils/processButtonData"
export default {
name: "IssueRequestZP",
mixins: [
tableMixins,
LoadingMixins,
drawerMixins,
TableHeaderMixins,
mixins,
],
computed: {
editDialog: {
get: function () {
return this.displayDialog.newDialog || this.displayDialog.editDialog;
},
},
},
data () {
let _this = this;
return {
URL: 'wms/store/material-request',
tableLoading: false,
handleMultipleSelection: [],
//
currenButtonData: [
this.defaultImportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
],
//
oldIssueJobIds: [],
DrawerButtonData: [
// ...requestData(this),
{
type: 'primary',
icon: 'el-icon-circle-check',
label: '完成',
hide: () => { return this.completeRequestInit([2,6])},
name: "completeRequest",
size: 'mini'
},
{
type: 'primary',
icon: 'el-icon-circle-check',
label: '执行',
name: "IssueRequest-zx",
hide: () => { return this.againHandleRequestInit([9])},
size: 'mini'
},
...requestData(this,false,false,[requestDataNames.againHandle]),
],
};
},
mounted () {
this.paging()
},
methods: {
//
paging(callback) {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount
// : :Issue_Manual; 线:Issue_WIP; :Direct_Issue
let params = {
type: 'Issue_Manual'
}
materialRequestByType(this.PageListParams, this.URL + '/by-type', params).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.pagingCallback(callback)
}).catch(err => {
this.Loading.tableLoading = false
})
},
// 2() 6abortRequestRequestInit
completeRequestInit(val){
let data = false
val.forEach(key => {
if (this.propsData.requestStatus == key) {
data = true
}
})
return data
},
// ==9
againHandleRequestInit(val){
let data = true
val.forEach(key => {
if (this.propsData.requestStatus == key) {
data = false
}
})
return data
},
//
handleResult(){
getDetailed(this.propsData.id, this.URL).then(res => {
this.propsData = res
})
this.paging()
this.Loading.appMainLoading = false
},
//
drawerbutton (val) {
//
if(val == 'IssueRequest-zx'){
this.Loading.appMainLoading = true
//
processRequest(this.propsData.number,'wms/store/issue-job/by-request-number/').then(resFirst=>{
this.oldIssueJobIds = []
resFirst.forEach(item=>{
this.oldIssueJobIds.push(item.id)
})
//
processRequest(this.propsData.id, this.URL + '/handle/').then(resHandle => {
//
processRequest(this.propsData.number,'wms/store/issue-job/by-request-number/').then(resNew=>{
//
if(!resNew || resNew.length <= 0){
this.$errorMsg('没有可用库存,未生成新任务')
this.handleResult()
return
}
//
if(resNew && resNew.length > 0){
let _newIds = []
resNew.forEach(item=>{
_newIds.push(item.id)
})
if(this.oldIssueJobIds.sort().toString() === _newIds.sort().toString()){
let mes = '未生成任务原因: ' + `<br/>` + '1、该请求中的【物品】的【实际发货数量】小于【请求数量】,请确认数量后点击【完成】。' + `<br/>` + '2、该请求中的【库存余额】小于【请求数量】,请确认数量后点击【执行】'
this.$alert(mes,
'错误提示', {
confirmButtonText: '确定',
dangerouslyUseHTMLString: true
})
}else{
this.$successMsg('执行成功,已生成新任务')
}
this.handleResult()
}
})
}).catch(err => {
console.log(err)
this.Loading.appMainLoading = false
})
}).catch(err => {
console.log(err)
this.Loading.appMainLoading = false
})
} else {
drawerMixins.methods.drawerbutton(val, this)
}
},
}
};
</script>
<style lang="scss" scoped>
@import "../../../styles/mainbasicData.scss";
</style>
Loading…
Cancel
Save