niexiting 11 months ago
parent
commit
1781216151
  1. 214
      api/request2.js
  2. 73
      common/basic.js
  3. 8
      common/directory.js
  4. 32
      common/label.js
  5. 40
      common/scan.js
  6. 3
      mycomponents/scan/winComScan.vue
  7. 2
      mycomponents/scan/winScanPack.vue
  8. 1
      mycomponents/scan/winScanPackAndLocation.vue
  9. 8
      pages.json
  10. 7
      pages/package/record/mergePackageRecord.vue
  11. 7
      pages/package/record/overPackageRecord.vue
  12. 5
      pages/package/record/splitPackageRecord.vue
  13. 7
      pages/pallet/record/unBindPalletRecord.vue
  14. 3
      pages/productDismantle/coms/requestInfoPopup.vue
  15. 6
      pages/productDismantle/job/productDismantleDetail.vue
  16. 7
      pages/productPutaway/job/productPutawayDetail.vue
  17. 6
      pages/productionReturn/request/returnRequestCreate.vue
  18. 27
      pages/purchaseReturn/request/returnRequest.vue
  19. 8
      pages/putaway/job/putawayDetail.vue
  20. 12
      pages/scrap/coms/comScrapJobCard.vue
  21. 54
      pages/scrap/job/scrapJobDetail.vue
  22. 836
      pages/scrap/record/scrapRecord.vue
  23. 385
      pages/scrap/request/scrapRequestCreate.vue
  24. 131
      pages/scrap/request/scrapRrequest.vue
  25. 254
      pages/unPlanned/coms/comReceiptRequestPopup.vue
  26. 44
      pages/unPlanned/job/receiptJobDetail.vue
  27. 53
      pages/unPlanned/record/issueRecord.vue
  28. 55
      pages/unPlanned/record/receiptRecord.vue
  29. 130
      pages/unPlanned/request/issueRequest.vue
  30. 191
      pages/unPlanned/request/issueRequestCreate.vue
  31. 133
      pages/unPlanned/request/receiptRequest.vue
  32. 217
      pages/unPlanned/request/receiptRequestCreate.vue
  33. 1
      static/config.json

214
api/request2.js

@ -634,7 +634,7 @@ export function purchaseReturnRequestClose(id) {
* 采购退货申请 提交审批 * 采购退货申请 提交审批
* @param {*} params * @param {*} params
*/ */
export function purchaseReturnRequestSubmitApprove(id) { export function purchaseReturnRequestApprove(id) {
return request({ return request({
url: baseApi + "/wms/purchasereturn-request-main/submit?id="+id, url: baseApi + "/wms/purchasereturn-request-main/submit?id="+id,
method: "put", method: "put",
@ -646,7 +646,7 @@ export function purchaseReturnRequestSubmitApprove(id) {
* 采购退货申请 提交审批通过 * 采购退货申请 提交审批通过
* @param {*} params * @param {*} params
*/ */
export function purchaseReturnRequestSubmitApproveAgree(id) { export function purchaseReturnRequestApproveAgree(id) {
return request({ return request({
url: baseApi + "/wms/purchasereturn-request-main/agree?id="+id, url: baseApi + "/wms/purchasereturn-request-main/agree?id="+id,
method: "put", method: "put",
@ -658,7 +658,7 @@ export function purchaseReturnRequestSubmitApproveAgree(id) {
* 采购退货申请 审批驳回 * 采购退货申请 审批驳回
* @param {*} params * @param {*} params
*/ */
export function purchaseReturnRequestSubmitApproveRefused(id) { export function purchaseReturnRequestApproveRefused(id) {
return request({ return request({
url: baseApi + "/wms/purchasereturn-request-main/refused?id="+id, url: baseApi + "/wms/purchasereturn-request-main/refused?id="+id,
method: "put", method: "put",
@ -1270,17 +1270,78 @@ export function unPlannedReceiptJobSubmit(params) {
} }
/** /**
* 计划外入库申请 提交 * 计划外入库申请 创建
* @param {*} params * @param {*} params
*/ */
export function unPlannedReceiptRequestbSubmit(params) { export function unPlannedReceiptRequestCreate(params) {
return request({ return request({
url: baseApi + "/magic-api/pda/job/purchasereturn/jobSubmit", url: baseApi + "/wms/unplannedreceipt-request-main/create",
method: "put", method: "post",
data: params, data: params,
}); });
} }
/**
* 计划外入库申请 提交审批
* @param {*} params
*/
export function unPlannedReceiptRequestApprove(id) {
return request({
url: baseApi + "/wms/unplannedreceipt-request-main/submit?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外入库申请 关闭
* @param {*} params
*/
export function unPlannedReceiptRequestClose(id) {
return request({
url: baseApi + "/wms/unplannedreceipt-request-main/close?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外入库申请 审批通过
* @param {*} params
*/
export function unPlannedReceiptRequestApproveAgree(id) {
return request({
url: baseApi + "/wms/unplannedreceipt-request-main/agree?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外入库申请 审批驳回
* @param {*} params
*/
export function unPlannedReceiptRequestApproveRefused(id) {
return request({
url: baseApi + "/wms/unplannedreceipt-request-main/refused?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外入库申请 处理
* @param {*} params
*/
export function unPlannedReceiptRequestHandle(id) {
return request({
url: baseApi + "/wms/unplannedreceipt-request-main/handle?id="+id,
method: "put",
data: {},
});
}
/** /**
* 计划外入库记录 提交 * 计划外入库记录 提交
* @param {*} params * @param {*} params
@ -1365,7 +1426,7 @@ export function unPlannedIssueJobSubmit(params) {
* 计划外出库申请 提交 * 计划外出库申请 提交
* @param {*} params * @param {*} params
*/ */
export function unPlannedIssueRequestSubmit(params) { export function unPlannedIssueRequestCreate(params) {
return request({ return request({
url: baseApi + "/wms/unplannedissue-request-main/create", url: baseApi + "/wms/unplannedissue-request-main/create",
method: "post", method: "post",
@ -1373,6 +1434,67 @@ export function unPlannedIssueRequestSubmit(params) {
}); });
} }
/**
* 计划外出库申请 提交审批
* @param {*} params
*/
export function unPlannedIssueRequestApprove(id) {
return request({
url: baseApi + "/wms/unplannedissue-request-main/submit?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外出库申请 关闭
* @param {*} params
*/
export function unPlannedIssueRequestClose(id) {
return request({
url: baseApi + "/wms/unplannedissue-request-main/close?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外出库申请 审批通过
* @param {*} params
*/
export function unPlannedIssueRequestApproveAgree(id) {
return request({
url: baseApi + "/wms/unplannedissue-request-main/agree?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外出库申请 审批驳回
* @param {*} params
*/
export function unPlannedIssueRequestApproveRefused(id) {
return request({
url: baseApi + "/wms/unplannedissue-request-main/refused?id="+id,
method: "put",
data: {},
});
}
/**
* 计划外出库申请 处理
* @param {*} params
*/
export function unPlannedIssueRequestHandle(id) {
return request({
url: baseApi + "/wms/unplannedissue-request-main/handle?id="+id,
method: "put",
data: {},
});
}
/** /**
* 计划外出库记录 提交 * 计划外出库记录 提交
* @param {*} params * @param {*} params
@ -2465,7 +2587,7 @@ export function unPlannedReceiptRequestSubmit(params) {
/** /**
* 报废出库 任务 * 报废出库任务
* status 任务状态 * status 任务状态
* 开始日期 * 开始日期
* 结束日期 * 结束日期
@ -2498,7 +2620,7 @@ export function getScrapJobDetail(id) {
*/ */
export function takeScrapJob(id) { export function takeScrapJob(id) {
return request({ return request({
url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, url: baseApi + "/wms/scrap-job-main/accept?id=" + id,
method: "put", method: "put",
data: {}, data: {},
}); });
@ -2511,7 +2633,7 @@ export function takeScrapJob(id) {
*/ */
export function cancleTakeScrapJob(id) { export function cancleTakeScrapJob(id) {
return request({ return request({
url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, url: baseApi + "/wms/scrap-job-main/abandon?id=" + id,
method: "put", method: "put",
data: {}, data: {},
}); });
@ -2524,7 +2646,7 @@ export function cancleTakeScrapJob(id) {
*/ */
export function scrapJobSubmit(params) { export function scrapJobSubmit(params) {
return request({ return request({
url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, url: baseApi + "/wms/scrap-job-main/execute",
method: "put", method: "put",
data: params, data: params,
}); });
@ -2560,17 +2682,77 @@ export function getScrapRequestDetail(id) {
} }
/** /**
* 报废出库申请 提交 * 报废出库申请 创建
* @param {*} params * @param {*} params
*/ */
export function scrapRequestSubmit(params) { export function scrapRequestCreate(params) {
return request({ return request({
url: baseApi + "/wms/purchasereturn-request-main/submit", url: baseApi + "/wms/scrap-request-main/create",
method: "put", method: "post",
data: params, data: params,
}); });
} }
/**
* 报废出库申请 提交审批
* @param {*} params
*/
export function scrapRequestApprove(id) {
return request({
url: baseApi + "/wms/scrap-request-main/submit?id="+id,
method: "put",
data: {},
});
}
/**
* 报废出库申请 关闭
* @param {*} params
*/
export function scrapRequestClose(id) {
return request({
url: baseApi + "/wms/scrap-request-main/close?id="+id,
method: "put",
data: {},
});
}
/**
* 报废出库申请 审批通过
* @param {*} params
*/
export function scrapRequestApproveAgree(id) {
return request({
url: baseApi + "/wms/scrap-request-main/agree?id="+id,
method: "put",
data: {},
});
}
/**
* 报废出库申请 审批驳回
* @param {*} params
*/
export function scrapRequestApproveRefused(id) {
return request({
url: baseApi + "/wms/scrap-request-main/refused?id="+id,
method: "put",
data: {},
});
}
/**
* 报废出库申请 审批驳回
* @param {*} params
*/
export function scrapRequestHandle(id) {
return request({
url: baseApi + "/wms/scrap-request-main/handle?id="+id,
method: "put",
data: {},
});
}
/** /**
* 报废出库记录 提交 * 报废出库记录 提交
* @param {*} params * @param {*} params

73
common/basic.js

@ -715,6 +715,75 @@ export function getTodayDate() {
return startTime + "," + endTime; return startTime + "," + endTime;
} }
export function getCurrDateOneMonthsTimes() {
var end = Date.now()
// var end = new Date('2019/12/31 15:18').getTime()
var day = 31
var enda = new Date(end);
var endm = enda.getMonth() + 1;
var d = enda.getDate();
if (endm == 4 || endm == 6 || endm == 9 || endm == 11) {
day = 30
} else {
if (d == 31) {
day = 30
}
if (endm == 7 || endm == 12) {
day = 31
}
}
if (endm == 1) {
var endy = enda.getFullYear();
day = 31
if (d == 31) {
day = 28
}
if (d == 30) {
day = 29
}
if (d == 29) {
day = 30
}
if (endy % 4 == 0) {
day = 31
if (d == 31) {
day = 29
}
if (d == 30) {
day = 30
}
if (d == 29) {
day = 31
}
}
}
if (endm == 2) {
var endy = enda.getFullYear();
day = 28
if (endy % 4 == 0) {
day = 29
}
}
var start = 1000 * 60 * 60 * 24 * day
var interval = end + start;
return interval;
}
export function getCurrDateTimes() {
var time = (new Date()).getTime();
return time;
}
export function getBatch() {
var date = new Date();
var year = date.getFullYear(); //年
var month = date.getMonth() + 1; //月
var day = date.getDate(); //日
var batch =year.toString()+month.toString()+day.toString()
return batch;
}
export function getCurrDate() { export function getCurrDate() {
var date = new Date(); var date = new Date();
return getDate(date); return getDate(date);
@ -733,11 +802,11 @@ export function getISODateTime() {
//格式化处理 //格式化处理
export function dateFormat(time) { export function dateFormat(time) {
var result = "" var result = ""
if(time!=null){ if (time != null) {
let date = new Date(time); let date = new Date(time);
result = getDate(date) + " " + getTime(date); result = getDate(date) + " " + getTime(date);
} }
return result; return result;
} }

8
common/directory.js

@ -9,6 +9,7 @@ let containerTypeList = [];
let packUnitList = []; let packUnitList = [];
let requestStatusList = []; let requestStatusList = [];
let unplannedReceiptReasonList = []; let unplannedReceiptReasonList = [];
let unplannedIssueReasonList = [];
let unplannedIissueReason = []; let unplannedIissueReason = [];
let scrapReasonList = []; let scrapReasonList = [];
let inspectFailedReasonList = []; let inspectFailedReasonList = [];
@ -42,6 +43,7 @@ export function clearCacheData() {
packUnitList = []; packUnitList = [];
requestStatusList = []; requestStatusList = [];
unplannedReceiptReasonList = []; unplannedReceiptReasonList = [];
unplannedIssueReasonList=[];
unplannedIissueReason = []; unplannedIissueReason = [];
scrapReasonList = []; scrapReasonList = [];
inspectFailedReasonList = []; inspectFailedReasonList = [];
@ -329,7 +331,7 @@ export function getUnPlannedReceiptReasonList(value) {
} }
unplannedReceiptReasonList.forEach(res => { unplannedReceiptReasonList.forEach(res => {
res.text = res.label; res.text = res.label;
res.value = res.code res.value = res.value
}) })
return unplannedReceiptReasonList return unplannedReceiptReasonList
} }
@ -341,7 +343,7 @@ export function getUnPlannedIssuseReasonList(value) {
} }
unplannedIssueReasonList.forEach(res => { unplannedIssueReasonList.forEach(res => {
res.text = res.label; res.text = res.label;
res.value = res.code res.value = res.value
}) })
return unplannedIssueReasonList return unplannedIssueReasonList
} }
@ -353,7 +355,7 @@ export function getScarpReasonList(value) {
} }
scrapReasonList.forEach(res => { scrapReasonList.forEach(res => {
res.text = res.label; res.text = res.label;
res.value = res.code res.value = res.value
}) })
return scrapReasonList return scrapReasonList
} }

32
common/label.js

@ -14,7 +14,7 @@ export function getLabelInfo(scanMsg, callBack) {
let items = scanMsg.split(';'); let items = scanMsg.split(';');
let header = items[0]; let header = items[0];
let version = items[1]; let version = items[1];
if (header != '' && version != '') { if ((header != undefined) && (version!=undefined)) {
//解析扫描的是一维码还是二维码 //解析扫描的是一维码还是二维码
let type = header.substring(header.length - 1, header.length); let type = header.substring(header.length - 1, header.length);
if (type == 'Q') //qrcode if (type == 'Q') //qrcode
@ -26,6 +26,18 @@ export function getLabelInfo(scanMsg, callBack) {
} else { //直接输入文本 } else { //直接输入文本
getBarCodeInfo('text', 'V1.0', scanMsg, callBack); getBarCodeInfo('text', 'V1.0', scanMsg, callBack);
} }
}else {
let labelResult = {
label: {
labelType: "",
barType: '',
code:""
},
package: null,
success: false,
message: '标签格式不正确',
}
callBack(labelResult);
} }
} }
@ -38,12 +50,12 @@ export function getQRCodeInfo(header, version, scanMsg, callBack) {
barType: 'QRCode', barType: 'QRCode',
}, },
package: {}, package: {},
sucess: true, success: true,
message: '' message: ''
} }
getLabelByHeader(header, version).then(res => { getLabelByHeader(header, version).then(res => {
if (res.data==null) { if (res.data==null) {
labelResult.sucess = false; labelResult.success = false;
labelResult.message = '未查找到标签头为[' + header + ']的标签类型'; labelResult.message = '未查找到标签头为[' + header + ']的标签类型';
callBack(labelResult); callBack(labelResult);
} else { } else {
@ -57,7 +69,7 @@ export function getQRCodeInfo(header, version, scanMsg, callBack) {
getLabelItems(newItem, scanMsg, callBack); getLabelItems(newItem, scanMsg, callBack);
} }
}).catch(err => { }).catch(err => {
labelResult.sucess = false; labelResult.success = false;
labelResult.message = err; labelResult.message = err;
callBack(err); callBack(err);
}) })
@ -74,7 +86,7 @@ export function getLabelItems(labelItem, scanMsg, callBack) {
if (packingNumber != undefined) { if (packingNumber != undefined) {
getPackageByNumber(packingNumber).then(pack => { getPackageByNumber(packingNumber).then(pack => {
if (pack.data.list.length == 0) { if (pack.data.list.length == 0) {
labelResult.sucess = false; labelResult.success = false;
labelResult.message = '包装号[' + packingNumber + ']没有包装信息'; labelResult.message = '包装号[' + packingNumber + ']没有包装信息';
} else { } else {
labelResult.package = pack.data.list[0]; labelResult.package = pack.data.list[0];
@ -82,12 +94,12 @@ export function getLabelItems(labelItem, scanMsg, callBack) {
} }
callBack(labelResult); callBack(labelResult);
}).catch(err => { }).catch(err => {
labelResult.sucess = false; labelResult.success = false;
labelResult.message = err; labelResult.message = err;
callBack(labelResult); callBack(labelResult);
}) })
} else { } else {
labelResult.sucess = false; labelResult.success = false;
labelResult.message = '在条码中未解析到箱码'; labelResult.message = '在条码中未解析到箱码';
callBack(labelResult); callBack(labelResult);
} }
@ -103,7 +115,7 @@ export function analysisQRCodeLabel(labelItem, scanMsg) {
barType: 'QRCode', barType: 'QRCode',
}, },
package: {}, package: {},
sucess: true, success: true,
message: '' message: ''
} }
@ -112,7 +124,7 @@ export function analysisQRCodeLabel(labelItem, scanMsg) {
labelResult.message = "未读取到分隔符"; labelResult.message = "未读取到分隔符";
} else { } else {
if (scanMsg.indexOf(separators) < 0) { if (scanMsg.indexOf(separators) < 0) {
labelResult.sucess = false; labelResult.success = false;
labelResult.message = "标签格式不正确"; labelResult.message = "标签格式不正确";
} else { } else {
try { try {
@ -153,7 +165,7 @@ export function getBarCodeInfo(header, version, value, callBack) {
code:value code:value
}, },
package: null, package: null,
sucess: true, success: true,
message: '', message: '',
} }
callBack(labelResult); callBack(labelResult);

40
common/scan.js

@ -13,12 +13,12 @@
//B:supplierBatch 供应商批次 //B:supplierBatch 供应商批次
//返回结果 //返回结果
//sucess true:成功 false:失败 //success true:成功 false:失败
//scanType barcode:条码 qrcode:二维码 //scanType barcode:条码 qrcode:二维码
//isPack true:箱码 false:托码 //isPack true:箱码 false:托码
export function analyseScanInfo(scanMsg) { export function analyseScanInfo(scanMsg) {
let scanResult = { let scanResult = {
sucess: false, success: false,
message: "", message: "",
data: { data: {
isPack: null, isPack: null,
@ -41,7 +41,7 @@ export function analyseScanInfo(scanMsg) {
console.log('1.扫描到的内容:', scanMsg); console.log('1.扫描到的内容:', scanMsg);
//条码 //条码
if (scanMsg.indexOf(';') < 0) { if (scanMsg.indexOf(';') < 0) {
scanResult.sucess = true; scanResult.success = true;
scanResult.data.code = scanMsg; scanResult.data.code = scanMsg;
scanResult.data.scanType = 'barcode'; //条码 scanResult.data.scanType = 'barcode'; //条码
} else { } else {
@ -107,15 +107,15 @@ export function analyseScanInfo(scanMsg) {
} }
}) })
scanResult.sucess = true; scanResult.success = true;
} else { //扫描的是条码,直接返回接收到的内容 } else { //扫描的是条码,直接返回接收到的内容
scanResult.sucess = true; scanResult.success = true;
scanResult.data.code = scanMsg; scanResult.data.code = scanMsg;
scanResult.data.scanType = 'barcode'; scanResult.data.scanType = 'barcode';
} }
} }
} catch (ex) { } catch (ex) {
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "解析遇到异常" + ex.message; scanResult.message = "解析遇到异常" + ex.message;
} }
} }
@ -138,12 +138,12 @@ export function analyseScanInfo(scanMsg) {
//E:produceDate日期 //E:produceDate日期
//返回结果 //返回结果
//sucess true:成功 false:失败 //success true:成功 false:失败
//scanType barcode:条码 qrcode:二维码 //scanType barcode:条码 qrcode:二维码
//isPack true:箱码 false:托码 //isPack true:箱码 false:托码
export function analyseProductLabelInfo(scanMsg) { export function analyseProductLabelInfo(scanMsg) {
let scanResult = { let scanResult = {
sucess: false, success: false,
message: "", message: "",
data: { data: {
itemCode: null, itemCode: null,
@ -163,7 +163,7 @@ export function analyseProductLabelInfo(scanMsg) {
try { try {
//条码 //条码
if (scanMsg.indexOf(';') < 0) { if (scanMsg.indexOf(';') < 0) {
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "标签格式不正确"; scanResult.message = "标签格式不正确";
} else { } else {
let arrayItems = scanMsg.split(';'); let arrayItems = scanMsg.split(';');
@ -211,13 +211,13 @@ export function analyseProductLabelInfo(scanMsg) {
scanResult.data.produceDate = value; scanResult.data.produceDate = value;
break; break;
default: default:
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "无法识别的前缀" + type; scanResult.message = "无法识别的前缀" + type;
break; break;
} }
scanResult.sucess = true; scanResult.success = true;
} else { } else {
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "标签信息不能为空" + type; scanResult.message = "标签信息不能为空" + type;
} }
} }
@ -225,12 +225,12 @@ export function analyseProductLabelInfo(scanMsg) {
} else { //扫描的是条码,直接返回接收到的内容 } else { //扫描的是条码,直接返回接收到的内容
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "标签分隔符错误"; scanResult.message = "标签分隔符错误";
} }
} }
} catch (ex) { } catch (ex) {
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "解析遇到异常" + ex.message; scanResult.message = "解析遇到异常" + ex.message;
} }
} }
@ -243,7 +243,7 @@ export function analyseProductLabelInfo(scanMsg) {
//1.序号1,2.生产号2546311FL,3.零件号254FL004,4.批序号202207110009 //1.序号1,2.生产号2546311FL,3.零件号254FL004,4.批序号202207110009
export function analyseTJMesQRCode(scanMsg) { export function analyseTJMesQRCode(scanMsg) {
let scanResult = { let scanResult = {
sucess: false, success: false,
message: "", message: "",
items: [] items: []
}; };
@ -252,7 +252,7 @@ export function analyseTJMesQRCode(scanMsg) {
} else { } else {
try { try {
if (scanMsg.indexOf(':') < 0) { if (scanMsg.indexOf(':') < 0) {
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "标签格式不正确"; scanResult.message = "标签格式不正确";
} else { } else {
let arrayItems = scanMsg.split(':'); let arrayItems = scanMsg.split(':');
@ -290,18 +290,18 @@ export function analyseTJMesQRCode(scanMsg) {
} }
} }
} else { } else {
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "标签信息不能为空"; scanResult.message = "标签信息不能为空";
} }
}) })
scanResult.sucess = true; scanResult.success = true;
} else { //扫描的是条码,直接返回接收到的内容 } else { //扫描的是条码,直接返回接收到的内容
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "标签分隔符错误"; scanResult.message = "标签分隔符错误";
} }
} }
} catch (ex) { } catch (ex) {
scanResult.sucess = false; scanResult.success = false;
scanResult.message = "解析遇到异常" + ex.message; scanResult.message = "解析遇到异常" + ex.message;
} }
} }

3
mycomponents/scan/winComScan.vue

@ -152,11 +152,12 @@
} }
getLabelInfo(content, callback => { getLabelInfo(content, callback => {
let scanResult = callback; let scanResult = callback;
if (scanResult.sucess) { if (scanResult.success) {
that.clear(); that.clear();
// that.getfocus();// // that.getfocus();//
that.$emit("getResult", scanResult); that.$emit("getResult", scanResult);
} else { } else {
that.clear();
this.$refs.comMessage.showErrorMessage(scanResult.message, res => { this.$refs.comMessage.showErrorMessage(scanResult.message, res => {
if (res) { if (res) {
that.getfocus(); that.getfocus();

2
mycomponents/scan/winScanPack.vue

@ -74,7 +74,7 @@
}, },
getScanResult(result) { getScanResult(result) {
if (result.sucess) { if (result.success) {
this.$emit("getResult", result); this.$emit("getResult", result);
} else { } else {
this.showMessage(result.message) this.showMessage(result.message)

1
mycomponents/scan/winScanPackAndLocation.vue

@ -139,6 +139,7 @@
this.$refs.popup.open('bottom'); this.$refs.popup.open('bottom');
this.fromInventoryStatuses = jobContent.outInventoryStatuses this.fromInventoryStatuses = jobContent.outInventoryStatuses
this.inventoryStatus = getDirectoryItemArray(jobContent.outInventoryStatuses); //; // this.inventoryStatus = getDirectoryItemArray(jobContent.outInventoryStatuses); //; //
debugger
this.fromLocationTypeArray = getDirectoryItemArray(jobContent.fromLocationTypes); // this.fromLocationTypeArray = getDirectoryItemArray(jobContent.fromLocationTypes); //
}, },

8
pages.json

@ -1640,6 +1640,14 @@
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, },
{
"path": "pages/scrap/request/scrapRequestCreate",
"style": {
"navigationBarTitleText": "报废出库申请创建",
"enablePullDownRefresh": false
}
},
{ {
"path": "pages/pallet/record/bindPalletRecord", "path": "pages/pallet/record/bindPalletRecord",
"style": { "style": {

7
pages/package/record/mergePackageRecord.vue

@ -44,10 +44,13 @@
<script> <script>
import { import {
goHome, goHome
} from '@/common/basic.js';
import {
getInventoryStatusDesc, getInventoryStatusDesc,
getDirectoryItemArray getDirectoryItemArray
} from '@/common/basic.js'; } from '@/common/directory.js';
import { import {
getBusinessType, getBusinessType,

7
pages/package/record/overPackageRecord.vue

@ -41,10 +41,13 @@
<script> <script>
import { import {
goHome, goHome
} from '@/common/basic.js';
import {
getInventoryStatusDesc, getInventoryStatusDesc,
getDirectoryItemArray getDirectoryItemArray
} from '@/common/basic.js'; } from '@/common/directory.js';
import { import {
getBusinessType, getBusinessType,

5
pages/package/record/splitPackageRecord.vue

@ -41,9 +41,12 @@
<script> <script>
import { import {
goHome, goHome,
} from '@/common/basic.js';
import {
getInventoryStatusDesc, getInventoryStatusDesc,
getDirectoryItemArray getDirectoryItemArray
} from '@/common/basic.js'; } from '@/common/directory.js';
import { import {
getBusinessType, getBusinessType,

7
pages/pallet/record/unBindPalletRecord.vue

@ -47,9 +47,12 @@
getContainerDetailByNumber getContainerDetailByNumber
} from '@/api/request.js'; } from '@/api/request.js';
import { import {
goHome, goHome
getDirectoryItemArray
} from '@/common/basic.js'; } from '@/common/basic.js';
import {
getDirectoryItemArray
} from '@/common/directory.js';
import { import {
getBusinessType, getBusinessType,

3
pages/productDismantle/coms/requestInfoPopup.vue

@ -45,10 +45,11 @@
<script> <script>
import { import {
dateFormat, dateFormat,
getDirectoryItemArray,
} from '@/common/basic.js'; } from '@/common/basic.js';
import { import {
getDirectoryItemArray,
getInventoryStatusDesc, getInventoryStatusDesc,
getLocationTypeNameList getLocationTypeNameList
} from '@/common/directory.js'; } from '@/common/directory.js';

6
pages/productDismantle/job/productDismantleDetail.vue

@ -64,8 +64,12 @@
getCurrDateTime, getCurrDateTime,
navigateBack, navigateBack,
getPackingNumberAndBatch, getPackingNumberAndBatch,
getInventoryStatusName,
} from '@/common/basic.js'; } from '@/common/basic.js';
import {
getInventoryStatusName
} from '@/common/directory.js';
import { import {
getLocationTypeArray getLocationTypeArray
} from '@/common/array.js'; } from '@/common/array.js';

7
pages/productPutaway/job/productPutawayDetail.vue

@ -64,8 +64,13 @@
getCurrDateTime, getCurrDateTime,
navigateBack, navigateBack,
getPackingNumberAndBatch, getPackingNumberAndBatch,
getInventoryStatusName,
} from '@/common/basic.js'; } from '@/common/basic.js';
import {
getInventoryStatusName,
getInventoryStatusDesc,
getDirectoryItemArray
} from '@/common/directory.js';
import { import {
getLocationTypeArray getLocationTypeArray
} from '@/common/array.js'; } from '@/common/array.js';

6
pages/productionReturn/request/returnRequestCreate.vue

@ -5,8 +5,8 @@
</view> </view>
<view v-else class="page-wraper"> <view v-else class="page-wraper">
<view class="page-main"> <view class="page-main">
<comReturnRequestCreator ref="issueRequest" :dataContent="detailSource" :isSwipe ="false"> <comReturnRequestInfo ref="issueRequest" :dataContent="detailSource" :isSwipe ="false">
</comReturnRequestCreator> </comReturnRequestInfo>
<button class="btn_add" @click="goScan(false)">+去添加</button> <button class="btn_add" @click="goScan(false)">+去添加</button>
</view> </view>
@ -44,7 +44,7 @@
import comScanReturnPack from '@/pages/productionReturn/coms/comScanReturnPack.vue' import comScanReturnPack from '@/pages/productionReturn/coms/comScanReturnPack.vue'
import comMessage from '@/mycomponents/common/comMessage.vue' import comMessage from '@/mycomponents/common/comMessage.vue'
import comReturnRequestCreator from '@/pages/productionReturn/coms/comReturnRequestCreator.vue' import comReturnRequestCreator from '@/pages/productionReturn/coms/comReturnRequestCreator.vue'
import comIssueRequestInfo from '@/pages/issue/coms/comIssueRequestInfo.vue'
export default { export default {
name: '', name: '',
components: { components: {

27
pages/purchaseReturn/request/returnRequest.vue

@ -41,9 +41,9 @@
import { import {
getPurchaseReturnRequestList, getPurchaseReturnRequestList,
purchaseReturnRequestClose, purchaseReturnRequestClose,
purchaseReturnRequestSubmitApprove, purchaseReturnRequestApprove,
purchaseReturnRequestSubmitApproveAgree, purchaseReturnRequestApproveAgree,
purchaseReturnRequestSubmitApproveRefused, purchaseReturnRequestApproveRefused,
purchaseReturnRequestHandle purchaseReturnRequestHandle
} from '@/api/request2.js'; } from '@/api/request2.js';
import { import {
@ -215,15 +215,15 @@
}) })
} else if (text == "提交审批") { } else if (text == "提交审批") {
this.showQuestionMessage("确定要审批当前申请吗?",res=>{ this.showQuestionMessage("确定要审批当前申请吗?",res=>{
this.purchaseReturnRequestSubmitApprove(dataContent.id) this.purchaseReturnRequestApprove(dataContent.id)
}) })
} else if (text=="审批通过") { } else if (text=="审批通过") {
this.showQuestionMessage("确定要审批通过当前申请吗?",res=>{ this.showQuestionMessage("确定要审批通过当前申请吗?",res=>{
this.purchaseReturnRequestSubmitApproveAgree(dataContent.id) this.purchaseReturnRequestApproveAgree(dataContent.id)
}) })
} else if (text == "审批驳回") { } else if (text == "审批驳回") {
this.showQuestionMessage("确定要审批驳回当前申请吗?",res=>{ this.showQuestionMessage("确定要审批驳回当前申请吗?",res=>{
this.purchaseReturnRequestSubmitApproveRefused(dataContent.id) this.purchaseReturnRequestApproveRefused(dataContent.id)
}) })
} else if (text == "关闭") { } else if (text == "关闭") {
this.showQuestionMessage("确定要关闭当前申请吗?",res=>{ this.showQuestionMessage("确定要关闭当前申请吗?",res=>{
@ -290,9 +290,8 @@
}, },
purchaseReturnRequestApprove(id) {
purchaseReturnRequestSubmitApprove(id) { purchaseReturnRequestApprove(id).then(res => {
purchaseReturnRequestSubmitApprove(id).then(res => {
if (res.data) { if (res.data) {
this.getList("refresh") this.getList("refresh")
uni.showToast({ uni.showToast({
@ -323,8 +322,8 @@
this.showMessage(error) this.showMessage(error)
}) })
}, },
purchaseReturnRequestSubmitApproveAgree(id) { purchaseReturnRequestApproveAgree(id) {
purchaseReturnRequestSubmitApproveAgree(id).then(res => { purchaseReturnRequestApproveAgree(id).then(res => {
if (res.data) { if (res.data) {
this.getList("refresh") this.getList("refresh")
uni.showToast({ uni.showToast({
@ -338,8 +337,8 @@
this.showMessage(error) this.showMessage(error)
}) })
}, },
purchaseReturnRequestSubmitApproveRefused(id) { purchaseReturnRequestApproveRefused(id) {
purchaseReturnRequestSubmitApproveRefused(id).then(res => { purchaseReturnRequestApproveRefused(id).then(res => {
if (res.data) { if (res.data) {
this.getList("refresh") this.getList("refresh")
uni.showToast({ uni.showToast({
@ -354,7 +353,7 @@
}) })
}, },
purchaseReturnRequestHandle(id) { purchaseReturnRequestHandle(id) {
purchaseReturnRequestSubmitApproveRefused(id).then(res => { purchaseReturnRequestHandle(id).then(res => {
if (res.data) { if (res.data) {
this.getList("refresh") this.getList("refresh")
uni.showToast({ uni.showToast({

8
pages/putaway/job/putawayDetail.vue

@ -183,7 +183,6 @@
} else { } else {
if (res.data.subList.length > 0) { if (res.data.subList.length > 0) {
that.jobContent = res.data; that.jobContent = res.data;
that.jobContent.outInventoryStatuses='INSP'
that.subList = res.data.subList; that.subList = res.data.subList;
that.detailSource = getDataSource(that.subList) that.detailSource = getDataSource(that.subList)
@ -301,6 +300,7 @@
if (res) { if (res) {
itemDetail.scaned = true; itemDetail.scaned = true;
itemDetail.handleQty = Number(result.balance.qty) ; itemDetail.handleQty = Number(result.balance.qty) ;
itemDetail.toInventoryStatus =result.balance.inventoryStatus
itemDetail.balance = result.balance; itemDetail.balance = result.balance;
itemDetail.balance.balanceQty = result.balance.qty; itemDetail.balance.balanceQty = result.balance.qty;
itemDetail.balance.stdPackQty = result.package.stdPackQty itemDetail.balance.stdPackQty = result.package.stdPackQty
@ -313,6 +313,7 @@
} else { } else {
itemDetail.scaned = true; itemDetail.scaned = true;
itemDetail.handleQty = Number(result.balance.qty) ; itemDetail.handleQty = Number(result.balance.qty) ;
itemDetail.toInventoryStatus =itemDetail.inventoryStatus
itemDetail.balance = result.balance; itemDetail.balance = result.balance;
itemDetail.balance.balanceQty = result.balance.qty; itemDetail.balance.balanceQty = result.balance.qty;
itemDetail.balance.stdPackQty = result.package.stdPackQty itemDetail.balance.stdPackQty = result.package.stdPackQty
@ -439,8 +440,6 @@
detail.toPackingNumber = info.packingNumber; detail.toPackingNumber = info.packingNumber;
detail.toBatch = info.batch; detail.toBatch = info.batch;
detail.toContainerNumber = ''; detail.toContainerNumber = '';
detail.toInventoryStatus = detail.inventoryStatus;
detail.singlePrice = detail.balance.singlePrice; detail.singlePrice = detail.balance.singlePrice;
detail.amount = detail.balance.singlePrice * detail.handleQty; detail.amount = detail.balance.singlePrice * detail.handleQty;
@ -448,9 +447,6 @@
detail.arriveDate = detail.balance.arriveDate; detail.arriveDate = detail.balance.arriveDate;
detail.produceDate = detail.balance.produceDate; detail.produceDate = detail.balance.produceDate;
detail.expireDate = detail.balance.expireDate; detail.expireDate = detail.balance.expireDate;
// "arriveDate": 1694591614000,
// "produceDate": 1694591615000,
// "expireDate": 1694591617000,
subList.push(detail) subList.push(detail)
} }
}) })

12
pages/scrap/coms/comScrapJobCard.vue

@ -3,17 +3,7 @@
<view class="task_item"> <view class="task_item">
<view class="task_text"> <view class="task_text">
<view class=""> <view class="">
发货单号 : {{dataContent.asnNumber}} 申请单号 : {{dataContent.requestNumber}}
</view>
</view>
<view class="task_text">
<view class="">
要货计划单号 : {{dataContent.ppNumber}}
</view>
</view>
<view class="task_text">
<view class="">
供应商名称 : {{dataContent.supplierName}}
</view> </view>
</view> </view>
</view> </view>

54
pages/scrap/job/scrapJobDetail.vue

@ -99,15 +99,14 @@
this.id = option.id; this.id = option.id;
if (this.id != undefined) { if (this.id != undefined) {
// //
// if (option.status == "JOB_PENDING") { if (option.status == "1") {
// this.receive((callback => { this.receive((callback => {
// this.received = true; this.received = true;
// this.getDetail(); this.getDetail();
// })); }));
// } else { } else {
// this.getDetail(); this.getDetail();
// } }
this.getDetail();
} }
}, },
// //
@ -213,11 +212,11 @@
let itemStatus = getInventoryStatusName(itemDetail.inventoryStatus); let itemStatus = getInventoryStatusName(itemDetail.inventoryStatus);
if (itemDetail.inventoryStatus != result.balance.inventoryStatus) { if (itemDetail.inventoryStatus != result.balance.inventoryStatus) {
this.showQuestionMessage('实际库存状态[' + balanceStatus + ']与推荐库存状态[' + itemStatus + this.showQuestionMessage('实际库存状态[' + balanceStatus + ']与推荐库存状态[' + itemStatus +
']不一致,是否继续上架?', res => { ']不一致,是否继续出库?', res => {
if (res) { if (res) {
itemDetail.scaned = true; itemDetail.scaned = true;
itemDetail.handleQty = Number(result.label.qty) > Number(result.balance itemDetail.handleQty = Number(result.label.qty);
.qty) ? Number(result.balance.qty) : Number(result.label.qty); itemDetail.inventoryStatus = result.balance.inventoryStatus;
itemDetail.balance = result.balance; itemDetail.balance = result.balance;
itemDetail.balance.balanceQty = result.balance.qty; itemDetail.balance.balanceQty = result.balance.qty;
itemDetail.balance.stdPackQty = result.package.stdPackQty itemDetail.balance.stdPackQty = result.package.stdPackQty
@ -229,8 +228,7 @@
}); });
} else { } else {
itemDetail.scaned = true; itemDetail.scaned = true;
itemDetail.handleQty = Number(result.label.qty) > Number(result.balance.qty) ? Number( itemDetail.handleQty = Number(result.label.qty);
result.balance.qty) : Number(result.label.qty);
itemDetail.balance = result.balance; itemDetail.balance = result.balance;
itemDetail.balance.balanceQty = result.balance.qty; itemDetail.balance.balanceQty = result.balance.qty;
itemDetail.balance.stdPackQty = result.package.stdPackQty itemDetail.balance.stdPackQty = result.package.stdPackQty
@ -246,7 +244,6 @@
}, },
// //
continueScan() { continueScan() {
this.scanCount = getScanCount(this.subList); this.scanCount = getScanCount(this.subList);
@ -305,17 +302,17 @@
// //
var params = this.setParams() var params = this.setParams()
console.log("提交参数", JSON.stringify(params)); console.log("提交参数", JSON.stringify(params));
// scrapJobSubmit(params).then(res => { scrapJobSubmit(params).then(res => {
// uni.hideLoading() uni.hideLoading()
// if (res.data) { if (res.data) {
// this.showCommitSuccessMessage("<br>" + res.data ) this.showCommitSuccessMessage("提交成功<br>生成报废出库记录<br>" + res.data )
// } else { } else {
// this.showErrorMessage(""+res.msg) this.showErrorMessage("提交失败["+res.msg+"]")
// } }
// }).catch(error => { }).catch(error => {
// uni.hideLoading() uni.hideLoading()
// this.showErrorMessage(error) this.showErrorMessage(error)
// }) })
}, },
@ -325,6 +322,11 @@
this.detailSource.forEach(item => { this.detailSource.forEach(item => {
item.subList.forEach(detail => { item.subList.forEach(detail => {
if (detail.scaned) { if (detail.scaned) {
detail.toPackingNumber = detail.packingNumber;
detail.toContainerNumber = "";
detail.toInventoryStatus= "";
detail.toLocationCode = "";
detail.toBatch = detail.batch;
subList.push(detail) subList.push(detail)
} }
}) })

836
pages/scrap/record/scrapRecord.vue

@ -1,428 +1,408 @@
<template> <template>
<view class="page-wraper"> <view class="page-wraper">
<view class=""> <view class="">
<com-blank-view @goScan='getLocation' v-if="fromLocationCode==''"></com-blank-view> <com-blank-view @goScan='getLocation' v-if="fromLocationCode==''"></com-blank-view>
</view> </view>
<view class="page-wraper" v-if="fromLocationCode!=''"> <view class="page-wraper" v-if="fromLocationCode!=''">
<view class="uni-flex uni-row u-col-center" style="width: 100%;" v-if="detailSource.length>0"> <view class="uni-flex uni-row u-col-center" style="width: 100%;" v-if="detailSource.length>0">
<view class="" style=" text-align: center;font-size: 32rpx;font-weight: 700;margin-left: 20rpx;"> <view class="" style=" text-align: center;font-size: 32rpx;font-weight: 700;margin-left: 20rpx;">
报废原因 : 报废原因 :
</view> </view>
<uni-data-picker v-if="detailSource.length>0" style="padding: 20rpx; background-color:#fff;" <uni-data-picker v-if="detailSource.length>0" style="padding: 20rpx; background-color:#fff;"
class='uni-data-picker' placeholder="请选择原因" popup-title="选择报废原因" :localdata="reasonList" class='uni-data-picker' placeholder="请选择原因" popup-title="选择报废原因" :localdata="reasonList"
v-model="reason"> v-model="reason">
</uni-data-picker> </uni-data-picker>
</view> </view>
<view class="page-main"> <view class="page-main">
<scroll-view scroll-y="true" class="page-main-scroll"> <scroll-view scroll-y="true" class="page-main-scroll">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id"> <view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
<view class=""> <view class="">
<record-com-detail-card :dataContent="item" :index="index" :settingParam="dataContent" <record-com-detail-card :dataContent="item" :index="index" :settingParam="dataContent"
:isShowLocation="true" @removeItem="removeItem(index,item)" @updateData="updateData" :isShowLocation="true" @removeItem="removeItem(index,item)" @updateData="updateData"
@removePack="removePack"> @removePack="removePack">
</record-com-detail-card> </record-com-detail-card>
</view> </view>
<u-line /> <u-line />
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
<view class="page-footer"> <view class="page-footer">
<view class="uni-flex u-col-center space-between padding_10" <view class="uni-flex u-col-center space-between padding_10"
style="background-color:ghostwhite; width: 100%; "> style="background-color:ghostwhite; width: 100%; ">
<view class=""> <view class="">
</view> </view>
<view class=" uni-flex uni-row"> <view class=" uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button> <button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
</view> </view>
</view> </view>
</view> </view>
<win-scan-button @goScan='openScanPopup'></win-scan-button> <win-scan-button @goScan='openScanPopup'></win-scan-button>
</view> </view>
<win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult'></win-scan-pack-and-location> <win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult'></win-scan-pack-and-location>
<comMessage ref="comMessage"></comMessage> <comMessage ref="comMessage"></comMessage>
<win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getLocation' <win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getLocation'
:locationTypeList="fromlocationTypeList"></win-scan-location> :locationTypeList="fromlocationTypeList"></win-scan-location>
</view> </view>
</template> </template>
<script> <script>
import { import {
scrapRequestSubmit, scrapRecordSubmit
scrapRecordSubmit } from '@/api/request2.js';
} from '@/api/request2.js';
import {
import { goHome,
goHome, updateTitle,
updateTitle, getScarpReasonList
getScarpReasonList } from '@/common/basic.js';
} from '@/common/basic.js';
import {
import { getInventoryStatusDesc,
getInventoryStatusDesc, getDirectoryItemArray,
getDirectoryItemArray, } from '@/common/directory.js';
} from '@/common/directory.js';
import {
import { getBusinessType,
getBusinessType, createItemInfo,
createItemInfo, createDetailInfo,
createDetailInfo, calcHandleQty
calcHandleQty } from '@/common/record.js';
} from '@/common/record.js';
import winScanButton from '@/mycomponents/scan/winScanButton.vue'
import winScanButton from '@/mycomponents/scan/winScanButton.vue' import winScanPack from '@/mycomponents/scan/winScanPack.vue'
import winScanPack from '@/mycomponents/scan/winScanPack.vue' import requiredLocation from '@/mycomponents/location/requiredLocation.vue'
import requiredLocation from '@/mycomponents/location/requiredLocation.vue' import comBlankView from '@/mycomponents/common/comBlankView.vue'
import comBlankView from '@/mycomponents/common/comBlankView.vue' import winScanLocation from "@/mycomponents/scan/winScanLocation.vue"
import winScanLocation from "@/mycomponents/scan/winScanLocation.vue" import comMessage from '@/mycomponents/common/comMessage.vue'
import comMessage from '@/mycomponents/common/comMessage.vue' import winScanPackAndLocation from "@/mycomponents/scan/winScanPackAndLocation.vue"
import winScanPackAndLocation from "@/mycomponents/scan/winScanPackAndLocation.vue" import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
export default {
export default { components: {
components: { winScanButton,
winScanButton, winScanPack,
winScanPack, requiredLocation,
requiredLocation, comBlankView,
comBlankView, winScanLocation,
winScanLocation, comMessage,
comMessage, winScanPackAndLocation,
winScanPackAndLocation, recordComDetailCard
recordComDetailCard },
}, data() {
data() { return {
return { id: '',
id: '', receiptJob: {},
receiptJob: {}, received: false,
received: false, isShowPackingCode: true,
isShowPackingCode: true, scanCount: 0,
scanCount: 0, dataContent: {}, //
dataContent: {}, // subList: [], //subList
subList: [], //subList detailSource: [], //
detailSource: [], // locationTypeList: [],
locationTypeList: [], toLocationInfo: {},
toLocationInfo: {}, businessTypeInfo: {},
businessTypeInfo: {}, fromLocationInfo: {},
fromLocationInfo: {}, fromLocationCode: "",
fromLocationCode: "", isShowLocation: false,
isShowLocation: false, fromlocationTypeList: [],
fromlocationTypeList: [], tolocationTypeList: [],
tolocationTypeList: [], allowModifyLocation: false,
allowModifyLocation: false, inInventoryStatus: "", //
inInventoryStatus: "", // outInventoryStatus: "", //
outInventoryStatus: "", // businessType: {},
businessType: {}, reasonList: [],
reasonList: [], reason: "",
reason: "", };
fromType:"" },
}; onLoad(option) {
}, this.reasonList = getScarpReasonList();
onLoad(option) { var typeCode = "Scrap"
this.fromType = option.fromType getBusinessType(typeCode, res => {
if(this.fromType=="requestType"){ updateTitle("报废申请") }else { updateTitle("报废记录") } if (res.success) {
this.reasonList = getScarpReasonList(); this.businessType = res.businessType;
var typeCode = "Scrap" this.fromlocationTypeList = res.fromlocationTypeList;
getBusinessType(typeCode, res => { this.tolocationTypeList = res.tolocationTypeList;
if (res.success) { this.showFromLocationPopup();
this.businessType = res.businessType; } else {
this.fromlocationTypeList = res.fromlocationTypeList; this.$refs.comMessage.showBreakMessage(res.message );
this.tolocationTypeList = res.tolocationTypeList; }
this.showFromLocationPopup(); });
} else {
this.$refs.comMessage.showBreakMessage(res.message ); },
} //
}); onNavigationBarButtonTap(e) {
if (e.index === 0) {
}, goHome();
// }
onNavigationBarButtonTap(e) { },
if (e.index === 0) { //
goHome(); onBackPress(e) {},
}
}, onPullDownRefresh() {},
//
onBackPress(e) {}, mounted() {
onPullDownRefresh() {}, },
methods: {
mounted() { getScanResult(result) {
let balance = result.balance;
}, let label = result.label;
methods: { let pack = result.package;
getScanResult(result) { var item = this.detailSource.find(res => {
let balance = result.balance; if (res.itemCode == balance.itemCode) {
let label = result.label; return res
let pack = result.package; }
var item = this.detailSource.find(res => { })
if (res.itemCode == balance.itemCode) { if (item == undefined) {
return res var itemp = createItemInfo(balance, pack);
} let newDetail = createDetailInfo(balance, pack); //
}) itemp.subList.push(newDetail);
if (item == undefined) { this.detailSource.push(itemp)
var itemp = createItemInfo(balance, pack); } else {
let newDetail = createDetailInfo(balance, pack); // var detail = item.subList.find(r => {
itemp.subList.push(newDetail); if (r.packingNumber == balance.packingNumber &&
this.detailSource.push(itemp) r.batch == balance.batch &&
} else { r.locationCode == balance.locationCode &&
var detail = item.subList.find(r => { r.inventoryStatus == balance.inventoryStatus) {
if (r.packingNumber == balance.packingNumber && return r;
r.batch == balance.batch && }
r.locationCode == balance.locationCode && })
r.inventoryStatus == balance.inventoryStatus) { if (detail == undefined) {
return r; let newDetail = createDetailInfo(balance, pack);
} item.subList.push(newDetail);
}) } else {
if (detail == undefined) { if (detail.scaned == true) {
let newDetail = createDetailInfo(balance, pack); this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]已经在列表中")
item.subList.push(newDetail); }
} else { }
if (detail.scaned == true) { }
this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]已经在列表中") this.calcHandleQty();
}
} },
}
this.calcHandleQty(); createItemInfo(balance, pack) {
let item = {
}, itemCode: balance.itemCode,
itemName: pack.itemName,
createItemInfo(balance, pack) { stdPackQty: pack.stdPackQty,
let item = { stdPackUnit: pack.stdPackUnit,
itemCode: balance.itemCode, qty: Number(balance.qty),
itemName: pack.itemName, handleQty: 0,
stdPackQty: pack.stdPackQty, uom: pack.uom,
stdPackUnit: pack.stdPackUnit, subList: []
qty: Number(balance.qty), }
handleQty: 0, return item;
uom: pack.uom, },
subList: []
} showErrorMessage(message) {
return item; this.$refs.comMessage.showErrorMessage(message, res => {
}, if (res) {
showErrorMessage(message) { }
this.$refs.comMessage.showErrorMessage(message, res => { });
if (res) { },
calcHandleQty() {
} calcHandleQty(this.detailSource)
}); this.$forceUpdate();
}, },
calcHandleQty() {
calcHandleQty(this.detailSource) updateData() {
this.$forceUpdate(); this.calcHandleQty();
}, },
removeItem(index, item) {
updateData() { this.detailSource.splice(index, 1)
this.calcHandleQty(); },
}, removePack() {
removeItem(index, item) { for (var i = 0; i < this.detailSource.length; i++) {
this.detailSource.splice(index, 1) var item = this.detailSource[i];
}, if (item.subList.length == 0) {
removePack() { this.detailSource.splice(i, 1)
for (var i = 0; i < this.detailSource.length; i++) { }
var item = this.detailSource[i]; }
if (item.subList.length == 0) { this.updateData();
this.detailSource.splice(i, 1) },
}
} openScanPopup() {
this.updateData();
}, if (this.fromLocationCode == "") {
this.showFromLocationPopup();
openScanPopup() { return
}
if (this.fromLocationCode == "") { this.$refs.scanPopup.openScanPopupForType(this.fromLocationCode, this.businessType);
this.showFromLocationPopup(); },
return showFromLocationPopup() {
} this.$nextTick(() => {
this.$refs.scanPopup.openScanPopupForType(this.fromLocationCode, this.businessType); this.$refs.scanLocationCode.openScanPopup();
}, })
showFromLocationPopup() { },
this.$nextTick(() => {
this.$refs.scanLocationCode.openScanPopup(); closeScanPopup() {
}) this.$refs.scanPopup.closeScanPopup();
}, },
closeScanPopup() { scanPopupGetFocus() {
this.$refs.scanPopup.closeScanPopup(); this.$refs.scanPopup.getfocus();
}, },
scanPopupGetFocus() {
this.$refs.scanPopup.getfocus(); commit() {
}, if(this.reason==""){
this.showMessage("请先选择报废原因")
return;
commit() { }
if(this.reason==""){ //
this.showMessage("请先选择报废原因") uni.showLoading({
return; title: "提交中....",
} mask: true
// });
uni.showLoading({
title: "提交中....",
mask: true // scrapRecordSubmit(params).then(res => {
}); // uni.hideLoading()
// if (res.data) {
// this.showCommitSuccessMessage("<br>" + res.data, )
if(this.fromType=="requestType"){ // } else {
var params = this.setRequestParams(); // this.showErrorMessage("[" + res.msg + "]")
console.log("提交" + JSON.stringify(params)) // }
// scrapRequestSubmit(params).then(res => { // }).catch(error => {
// uni.hideLoading() // uni.hideLoading()
// if (res.data) { // this.showErrorMessage(error)
// this.showCommitSuccessMessage("<br>" + res.data, ) // })
// } else {
// this.showErrorMessage("[" + res.msg + "]") },
// }
// }).catch(error => { setParams() {
// uni.hideLoading() var subList = []
// this.showErrorMessage(error) this.detailSource.forEach(item => {
// }) item.subList.forEach(detail => {
}else { if (detail.scaned) {
// scrapRecordSubmit(params).then(res => { // var info = getPackingNumberAndBatch(this.managementList, detail.itemCode,
// uni.hideLoading() // detail.packingNumber, detail.batch);
// if (res.data) { // detail.toPackingNumber =info.packingNumber;
// this.showCommitSuccessMessage("<br>" + res.data, ) // detail.toBatch =info.batch;
// } else { subList.push(detail)
// this.showErrorMessage("[" + res.msg + "]") }
// } })
// }).catch(error => { })
// uni.hideLoading() return subList;
// this.showErrorMessage(error) },
// })
} setRequestParams(){
var subList = []
}, var supplierCode=""
this.detailSource.forEach(item => {
setParams() { item.subList.forEach(detail => {
var subList = [] if (detail.scaned) {
this.detailSource.forEach(item => { if(supplierCode==""){
item.subList.forEach(detail => { supplierCode = detail.package.supplierCode
if (detail.scaned) { }
// var info = getPackingNumberAndBatch(this.managementList, detail.itemCode, subList.push(detail)
// detail.packingNumber, detail.batch); }
// detail.toPackingNumber =info.packingNumber; })
// detail.toBatch =info.batch; })
subList.push(detail)
} this.dataContent.subList = subList
}) this.dataContent.supplierCode = supplierCode
}) this.dataContent.businessType = "PurchasePutaway"
return subList; this.dataContent.departmentCode= "研发部门";
}, this.dataContent.status= 1 ;
this.dataContent.autoCommit = "FALSE";
setRequestParams(){ this.dataContent.autoAgree = "FALSE";
var subList = [] this.dataContent.autoExecute = "FALSE";
var supplierCode="" this.dataContent.directCreateRecord = "FALSE";
this.detailSource.forEach(item => { return this.dataContent;
item.subList.forEach(detail => { },
if (detail.scaned) {
if(supplierCode==""){
supplierCode = detail.package.supplierCode showMessage(message) {
} this.$refs.comMessage.showMessage(message, res => {
subList.push(detail) if (res) {}
} });
}) },
}) showErrorMessage(message) {
this.$refs.comMessage.showErrorMessage(message, res => {
this.dataContent.subList = subList if (res) {
this.dataContent.supplierCode = supplierCode
this.dataContent.businessType = "PurchasePutaway" }
this.dataContent.departmentCode= "研发部门"; });
this.dataContent.status= 1 ; },
this.dataContent.autoCommit = "FALSE";
this.dataContent.autoAgree = "FALSE"; showScanMessage(message) {
this.dataContent.autoExecute = "FALSE"; this.$refs.comMessage.showScanMessage(message);
this.dataContent.directCreateRecord = "FALSE"; },
return this.dataContent;
}, afterCloseMessage() {
this.scanPopupGetFocus();
},
showMessage(message) {
this.$refs.comMessage.showMessage(message, res => { closeScanMessage() {
if (res) {} this.scanPopupGetFocus();
}); },
}, getLocation(location, code) {
showErrorMessage(message) { this.getFromLocationCode(location, code)
this.$refs.comMessage.showErrorMessage(message, res => { },
if (res) { getFromLocationCode(location, code) {
this.fromLocationInfo = location;
} this.fromLocationCode = code;
}); this.openScanPopup();
}, },
showScanMessage(message) { showCommitSuccessMessage(hint) {
this.$refs.comMessage.showScanMessage(message); this.$refs.comMessage.showSuccessMessage(hint, res => {
}, this.fromLocationCode = '';
afterCloseMessage() { })
this.scanPopupGetFocus(); },
},
updateData() {
closeScanMessage() { this.calcHandleQty();
this.scanPopupGetFocus(); for (var i = 0; i < this.detailSource.length; i++) {
}, let item = this.detailSource[i];
getLocation(location, code) { if (item.qty == 0) {
this.getFromLocationCode(location, code) this.detailSource.splice(i, 1)
}, }
getFromLocationCode(location, code) { }
this.fromLocationInfo = location; }
this.fromLocationCode = code; }
this.openScanPopup(); }
}, </script>
showCommitSuccessMessage(hint) { <style scoped lang="scss">
this.$refs.comMessage.showSuccessMessage(hint, res => { page {
this.fromLocationCode = ''; width: 100%;
height: 100%;
}) background-color: #fff;
}, }
updateData() { .page-wraper {
this.calcHandleQty(); display: flex;
for (var i = 0; i < this.detailSource.length; i++) { flex-direction: column;
let item = this.detailSource[i]; width: 100%;
if (item.qty == 0) { height: 100%;
this.detailSource.splice(i, 1) }
}
}
} .page-main {
} flex: 1;
} position: relative;
</script> }
<style scoped lang="scss"> .page-main-scroll {
page { position: absolute;
width: 100%; left: 0;
height: 100%; right: 0;
background-color: #fff; top: 0;
} bottom: 0;
}
.page-wraper {
display: flex; .page-main-list {
flex-direction: column; /* height: 80rpx;
width: 100%; line-height: 80rpx; */
height: 100%; text-align: center;
} background: #e0e0e0;
}
.page-main { </style>
flex: 1;
position: relative;
}
.page-main-scroll {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.page-main-list {
/* height: 80rpx;
line-height: 80rpx; */
text-align: center;
background: #e0e0e0;
}
</style>

385
pages/scrap/request/scrapRequestCreate.vue

@ -0,0 +1,385 @@
<template>
<view class="page-wraper">
<view class="">
<com-blank-view @goScan='showFromLocationPopup' v-if="detailSource.length==0"></com-blank-view>
</view>
<view class="page-wraper" v-if="detailSource.length>0">
<view class="flex u-col-center" style="width: 100%;background-color:#fff;">
<view class="" style="margin-left: 20rpx; font-size: 30rpx;flex-shrink: 0;">报废原因</view>
<view style="width: 100%">
<uni-data-picker style="background-color:#fff;margin-right: 20rpx;" class='uni-data-picker'
placeholder="请选择报废原因" popup-title="报废原因" :localdata="reasonList" @change="reasonChange">
</uni-data-picker>
</view>
</view>
<view class="page-main">
<scroll-view scroll-y="true" class="page-main-scroll">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
<view class="">
<record-com-detail-card :dataContent="item" :index="index" :settingParam="dataContent"
:isShowLocation="true" @removeItem="removeItem(index,item)" @updateData="updateData"
@removePack="removePack">
</record-com-detail-card>
</view>
<u-line />
</view>
</scroll-view>
</view>
<view class="page-footer">
<view class="uni-flex u-col-center space-between padding_10"
style="background-color:ghostwhite; width: 100%; ">
<view class="">
</view>
<view class=" uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
</view>
</view>
</view>
<win-scan-button @goScan='openScanPopup'></win-scan-button>
</view>
<win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult'></win-scan-pack-and-location>
<comMessage ref="comMessage"></comMessage>
<win-scan-location ref="scanLocationCode" title="来源库位" @getLocation='getLocation'
:locationTypeList="fromlocationTypeList"></win-scan-location>
</view>
</template>
<script>
import {
scrapRequestCreate,
} from '@/api/request2.js';
import {
goHome,
updateTitle,
getCurrDateOneMonthsTimes,
navigateBack
} from '@/common/basic.js';
import {
getInventoryStatusDesc,
getDirectoryItemArray,
getScarpReasonList
} from '@/common/directory.js';
import {
getBusinessType,
createItemInfo,
createDetailInfo,
calcHandleQty
} from '@/common/record.js';
import winScanButton from '@/mycomponents/scan/winScanButton.vue'
import winScanPack from '@/mycomponents/scan/winScanPack.vue'
import requiredLocation from '@/mycomponents/location/requiredLocation.vue'
import comBlankView from '@/mycomponents/common/comBlankView.vue'
import winScanLocation from "@/mycomponents/scan/winScanLocation.vue"
import comMessage from '@/mycomponents/common/comMessage.vue'
import winScanPackAndLocation from "@/mycomponents/scan/winScanPackAndLocation.vue"
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
export default {
components: {
winScanButton,
winScanPack,
requiredLocation,
comBlankView,
winScanLocation,
comMessage,
winScanPackAndLocation,
recordComDetailCard
},
data() {
return {
id: '',
receiptJob: {},
received: false,
isShowPackingCode: true,
scanCount: 0,
dataContent: {}, //
subList: [], //subList
detailSource: [], //
locationTypeList: [],
fromLocationInfo: {},
fromLocationCode: "",
isShowLocation: false,
fromlocationTypeList: [],
tolocationTypeList: [],
allowModifyLocation: false,
inInventoryStatus: "", //
outInventoryStatus: "", //
businessType: {},
reasonList: [],
reasonText: "",
};
},
onLoad(option) {
this.reasonList = getScarpReasonList();
var typeCode = "Scrap"
getBusinessType(typeCode, res => {
if (res.success) {
this.businessType = res.businessType;
this.fromlocationTypeList = res.fromlocationTypeList;
this.tolocationTypeList = res.tolocationTypeList;
this.showFromLocationPopup();
} else {
this.$refs.comMessage.showBreakMessage(res.message);
}
});
},
//
onNavigationBarButtonTap(e) {
if (e.index === 0) {
goHome();
}
},
//
onBackPress(e) {},
onPullDownRefresh() {},
mounted() {
},
methods: {
getScanResult(result) {
let balance = result.balance;
let label = result.label;
let pack = result.package;
var item = this.detailSource.find(res => {
if (res.itemCode == balance.itemCode) {
return res
}
})
if (item == undefined) {
var itemp = createItemInfo(balance, pack);
let newDetail = createDetailInfo(balance, pack); //
itemp.subList.push(newDetail);
this.detailSource.push(itemp)
} else {
var detail = item.subList.find(r => {
if (r.packingNumber == balance.packingNumber &&
r.batch == balance.batch &&
r.locationCode == balance.locationCode &&
r.inventoryStatus == balance.inventoryStatus) {
return r;
}
})
if (detail == undefined) {
let newDetail = createDetailInfo(balance, pack);
item.subList.push(newDetail);
} else {
if (detail.scaned == true) {
this.showErrorMessage("箱码[" + balance.packingNumber + "批次[" + balance.batch + "]已经在列表中")
}
}
}
this.calcHandleQty();
},
showErrorMessage(message) {
this.$refs.comMessage.showErrorMessage(message, res => {
if (res) {
}
});
},
calcHandleQty() {
calcHandleQty(this.detailSource)
this.$forceUpdate();
},
updateData() {
this.calcHandleQty();
},
removeItem(index, item) {
this.detailSource.splice(index, 1)
},
removePack() {
for (var i = 0; i < this.detailSource.length; i++) {
var item = this.detailSource[i];
if (item.subList.length == 0) {
this.detailSource.splice(i, 1)
}
}
this.updateData();
},
openScanPopup() {
if (this.fromLocationCode == "") {
this.showFromLocationPopup();
return
}
this.$refs.scanPopup.openScanPopupForType(this.fromLocationCode, this.businessType);
},
showFromLocationPopup() {
this.$nextTick(() => {
this.$refs.scanLocationCode.openScanPopup();
})
},
closeScanPopup() {
this.$refs.scanPopup.closeScanPopup();
},
scanPopupGetFocus() {
this.$refs.scanPopup.getfocus();
},
commit() {
if (this.reasonText == "") {
this.showMessage("请先选择报废原因")
return;
}
if (this.detailSource.length == 0) {
this.showErrorMessage("请先扫描数据")
return;
}
//
uni.showLoading({
title: "提交中....",
mask: true
});
var params = this.setRequestParams();
console.log("提交" + JSON.stringify(params))
scrapRequestCreate(params).then(res => {
uni.hideLoading()
if (res.data) {
this.showCommitSuccessMessage("提交成功<br>生成报废出库申请<br>" + res.data, )
} else {
this.showErrorMessage("提交失败[" + res.msg + "]")
}
}).catch(error => {
uni.hideLoading()
this.showErrorMessage(error)
})
},
setRequestParams() {
var subList = []
this.detailSource.forEach(item => {
item.subList.forEach(detail => {
if (detail.scaned) {
detail.fromLocationCode = detail.locationCode
subList.push(detail)
}
})
})
this.dataContent.subList = subList
this.dataContent.status = 1;
this.dataContent.fromWarehouseCode = "W1";
this.dataContent.dueTime = getCurrDateOneMonthsTimes();
return this.dataContent;
},
showMessage(message) {
this.$refs.comMessage.showMessage(message, res => {
if (res) {}
});
},
showErrorMessage(message) {
this.$refs.comMessage.showErrorMessage(message, res => {
if (res) {
}
});
},
showScanMessage(message) {
this.$refs.comMessage.showScanMessage(message);
},
afterCloseMessage() {
this.scanPopupGetFocus();
},
closeScanMessage() {
this.scanPopupGetFocus();
},
getLocation(location, code) {
this.getFromLocationCode(location, code)
},
getFromLocationCode(location, code) {
this.fromLocationInfo = location;
this.fromLocationCode = code;
this.openScanPopup();
},
showCommitSuccessMessage(hint) {
this.$refs.comMessage.showSuccessMessage(hint, res => {
navigateBack(1)
})
},
updateData() {
this.calcHandleQty();
for (var i = 0; i < this.detailSource.length; i++) {
let item = this.detailSource[i];
if (item.qty == 0) {
this.detailSource.splice(i, 1)
}
}
},
reasonChange(e) {
if (e.detail.value.length == 0) {
this.reasonCode = ""
this.reasonText = ""
} else {
this.reasonCode = e.detail.value[0].value
this.reasonText = e.detail.value[0].text
}
}
}
}
</script>
<style scoped lang="scss">
page {
width: 100%;
height: 100%;
background-color: #fff;
}
.page-wraper {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
}
.page-main {
flex: 1;
position: relative;
}
.page-main-scroll {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.page-main-list {
/* height: 80rpx;
line-height: 80rpx; */
text-align: center;
background: #e0e0e0;
}
</style>

131
pages/scrap/request/scrapRrequest.vue

@ -34,11 +34,13 @@
updateTitle updateTitle
} from '@/common/basic.js'; } from '@/common/basic.js';
import {
getBusinessType,
} from '@/common/record.js';
import { import {
getScrapRequestList, getScrapRequestList,
scrapRequestApprove,
scrapRequestClose,
scrapRequestApproveAgree,
scrapRequestApproveRefused,
scrapRequestHandle
} from '@/api/request2.js'; } from '@/api/request2.js';
import { import {
getDetailOption, getDetailOption,
@ -112,7 +114,6 @@
}, },
methods: { methods: {
requestConfirm(action, item) {},
openRequestInfoPopup(item) { openRequestInfoPopup(item) {
this.$refs.requestInfoPopup.openPopup(item) this.$refs.requestInfoPopup.openPopup(item)
@ -195,27 +196,45 @@
openScanDetailPopup() { openScanDetailPopup() {
uni.navigateTo({ uni.navigateTo({
url: "../record/scrapRecord?fromType=" + this.fromType url: "./scrapRequestCreate"
}) })
}, },
swipeClick(e, dataContent) { swipeClick(e, dataContent) {
if (e.content.text == "详情") { var text = clearTirmAndWrap(e.content.text)
console.log("详情", dataContent.id) if (text == "详情") {
this.openRequestInfoPopup(dataContent); this.openRequestInfoPopup(dataContent);
} else if (e.content.text == "处理") { } else if (text == "处理") {
console.log("处理") this.showQuestionMessage("确定要处理当前申请吗?",res=>{
} else if (e.content.text == "审批") { this.scrapRequestHandle(dataContent.id)
console.log("审批") })
} else if (e.content.text == "审批通过") { } else if (text == "提交审批") {
console.log("审批通过") this.showQuestionMessage("确定要审批当前申请吗?",res=>{
} else if (e.content.text == "审批驳回") { this.scrapRequestApprove(dataContent.id)
console.log("审批驳回") })
} else if (e.content.text == "关闭") { } else if (text == "审批通过") {
console.log("关闭") this.showQuestionMessage("确定要审批通过当前申请吗?",res=>{
this.scrapRequestApproveAgree(dataContent.id)
})
} else if (text == "审批驳回") {
this.showQuestionMessage("确定要审批驳回当前申请吗?",res=>{
this.scrapRequestApproveRefused(dataContent.id)
})
} else if (text == "关闭") {
this.showQuestionMessage("确定要关闭当前申请吗?",res=>{
this.scrapRequestClose(dataContent.id)
})
} }
}, },
showQuestionMessage(hint,callBack){
this.$refs.comMessage.showQuestionMessage(hint,
res => {
if (res) {
callBack()
}
});
},
switchChangeWait(state, jobStatus) { switchChangeWait(state, jobStatus) {
this.checkedWaitTask = state; this.checkedWaitTask = state;
@ -265,7 +284,83 @@
} }
}); });
}, },
scrapRequestApprove(id) {
scrapRequestApprove(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请提交审批成功"
})
} else {
this.showMessage("申请提交审批失败")
}
}).catch(error => {
this.showMessage(error)
})
},
scrapRequestClose(id) {
scrapRequestClose(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请关闭成功"
})
} else {
this.showMessage("申请关闭失败")
}
}).catch(error => {
this.showMessage(error)
})
},
scrapRequestApproveAgree(id) {
scrapRequestApproveAgree(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请审批通过成功"
})
} else {
this.showMessage("申请审批通过失败")
}
}).catch(error => {
this.showMessage(error)
})
},
scrapRequestApproveRefused(id) {
scrapRequestApproveRefused(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请审批驳回成功"
})
} else {
this.showMessage("申请审批驳回失败")
}
}).catch(error => {
this.showMessage(error)
})
},
scrapRequestHandle(id) {
scrapRequestHandle(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请处理成功"
})
} else {
this.showMessage("申请处理失败")
}
}).catch(error => {
this.showMessage(error)
})
},
} }
} }
</script> </script>

254
pages/unPlanned/coms/comReceiptRequestPopup.vue

@ -0,0 +1,254 @@
<template>
<view class="">
<uni-popup ref="popup" :maskClick="false">
<view class="uni-flex uni-column pop_customer">
<view class="" style="padding:10rpx">
<view class="uni-flex u-col-center uni-row space-between" style="padding: 10rpx 10rpx 20rpx 10rpx">
<view class="" style="font-size: 35rpx;">
{{title}}
</view>
<image style="width: 35rpx;height: 35rpx;" src="/static/icons/icons_close.svg"
@click="closeRequestPopup()"></image>
</view>
<u-line />
<view class="uni-flex uni-column" style="background-color: white; ">
<view class="uni-flex uni-column ">
<view class="title padding" style="display: flex;">
<text style=" flex-shrink: 0;">库位</text>
<view class="" style="width: 100% ;">
{{toLocationCode}}
</view>
<view class="" v-if="editPosition">
<image src="/static/search.svg" mode=""
style=" width: 40rpx;height: 40rpx;margin-left: 20rpx;"
@click="locationCodeClick">
</image>
</view>
</view>
<u-line />
<view class="title padding" style="display: flex;">
<text style=" flex-shrink: 0;">物料</text>
<view class="" style="width: 100% ;">
{{itemCode}}
</view>
<view class="">
<image src="/static/search.svg" mode=""
style=" width: 40rpx;height: 40rpx;margin-left: 20rpx;" @click="itemCodeClick">
</image>
</view>
</view>
<u-line />
<view class="uni-flex uni-row padding title u-col-center">
<text>数量 : </text>
<view class="uni-flex uni-row uni-center"
style="align-items: center;margin-left: 20rpx;">
<uni-number-box :value="counQty" @change="change" style='margin-left: 10rpx;'
:focus="numberFocus" @blur='numberFocus = false'>
</uni-number-box>
<uom :uom="uom"></uom>
</view>
</view>
<u-line />
</view>
</view>
</view>
<view class="uni-flex uni-row hide_border">
<button class="btn_edit_big_cancle" hover-class="btn_edit_big_after" @click="cancel()">取消</button>
<button class="btn_edit_big_confirm" hover-class="btn_edit_big_after" @click="confirm()">确认</button>
</view>
</view>
</uni-popup>
<win-scan-item ref="itemPopup" title='物料代码' @getScanCode='getItemCode'>
</win-scan-item>
<winScanLocation ref="locationPopup" title="库位代码" @getLocation='getLocationCode'></winScanLocation>
<comMessage ref="comMessage"></comMessage>
</view>
</template>
<script>
import {
getBasicItemByCode,
} from '@/api/request2.js';
import {
getLocationTypeName,
getListLocationTypeDesc,
checkDirectoryItemExist
} from '@/common/directory.js';
import uom from '@/mycomponents/qty/uom.vue'
import balanceStatus from '@/mycomponents/status/balanceStatus.vue'
import comMessage from '@/mycomponents/common/comMessage.vue'
import winScanItem from '@/mycomponents/scan/winScanItem.vue'
import winScanLocation from '@/mycomponents/scan/winScanLocation.vue'
export default {
components: {
uom,
balanceStatus,
comMessage,
winScanItem,
winScanLocation
},
data() {
return {
itemCode: '请扫描物料信息',
itemName: "",
qty: 0,
itemCodeFocus: false,
requestInfo: null,
isCheckItemCode: false,
counQty: 0,
numberFocus: false,
uom: "",
show: false,
isModifiedPosition: true,
positionList: [],
toLocationCode: '请扫描库位信息',
isCheckLocationCode: false,
editPosition: true,
}
},
props: {
title: {
type: String,
default: '申请信息'
},
},
methods: {
openRequestPopup(editPosition) {
this.editPosition = editPosition;
if (!editPosition) {
this.itemCode = "";
this.uom = ""
this.qty = 0
this.itemCodeGetFocus();
}
this.$refs.popup.open('bottom')
},
closeRequestPopup() {
this.$refs.popup.close()
},
locationConfirm() {
//
this.checkLocatioCode();
},
itemCodeClick() {
this.$refs.itemPopup.openScanPopup();
},
locationCodeClick() {
this.$refs.locationPopup.openScanPopup();
},
itemCodeGetFocus() {
this.itemCodeFocus = true;
},
itemCodeLoseFocus() {
this.itemCodeFocus = false;
},
selectedItem(item) {
this.itemCode = item.itemCode;
this.checkItemCode();
},
confirm() {
if (this.toLocationCode == "") {
this.showErrorMessage("请输入库位", "locationCode")
return
}
if (this.itemCode == "" || !this.isCheckItemCode) {
this.showErrorMessage("请输入物料", "itemCode")
return
}
if (this.qty == 0) {
this.showErrorMessage("数量必须大于0")
return
}
this.callback('add');
},
checkItemCode(itemCode) {
//
getBasicItemByCode(itemCode).then(res => {
uni.hideLoading();
this.$refs.itemPopup.closeScanPopup();
if (res.data != null && res.data.list.length > 0) {
this.itemCode = res.data.list[0].code;
this.itemName = res.data.list[0].name
this.isCheckItemCode = true;
this.numberFocus = true
this.uom = res.data.list[0].uom
} else {
this.showErrorMessage('未查找到物料【' + itemCode + '】', "itemCode");
}
}).catch(error => {
uni.hideLoading();
this.showErrorMessage(error, "itemCode");
})
},
callback(action) {
let item = {
toLocationCode: this.toLocationCode,
itemCode: this.itemCode,
itemName: this.itemName,
uom: this.uom,
qty: this.qty
};
this.closeRequestPopup();
this.$emit("confirm", action, item);
},
showErrorMessage(message, type) {
setTimeout(r => {
this.$refs.comMessage.showErrorMessage(message, res => {
if (type == "itemCode") {
this.itemCodeGetFocus();
} else {
this.numberFocus = true;
}
})
// if (type == "itemCode") {
// this.itemCode = ""
// this.isCheckItemCode = false;
// }
})
},
change(value) {
this.qty = value;
},
cancel(e) {
this.closeRequestPopup();
},
getItemCode(code) {
if (code == "") {
this.showErrorMessage('物料号不能为空')
return;
}
this.itemCode = "";
this.checkItemCode(code)
},
getLocationCode(location, code) {
this.toLocationCode = code;
},
}
}
</script>
<style lang="scss">
.title {
font-size: 30rpx;
}
</style>

44
pages/unPlanned/job/receiptJobDetail.vue

@ -104,15 +104,14 @@
this.id = option.id; this.id = option.id;
if (this.id != undefined) { if (this.id != undefined) {
// // // //
// if (option.status == "JOB_PENDING") { if (option.status == "1") {
// this.receive((callback => { this.receive((callback => {
// this.received = true; this.received = true;
// this.getDetail(); this.getDetail();
// })); }));
// } else { } else {
// this.getDetail(); this.getDetail();
// } }
this.getDetail();
} }
}, },
// //
@ -278,7 +277,7 @@
checkLocation() { checkLocation() {
var isPass = true; var isPass = true;
if (this.toLocationCode == "" || this.toLocationCode == null) { if (this.toLocationCode == "" || this.toLocationCode == null) {
this.showMessageHint('请扫描收货库位', callback => { this.showMessageHint('请扫描目标库位', callback => {
this.$refs.comScanLocation.showLocation(); this.$refs.comScanLocation.showLocation();
}) })
@ -311,17 +310,18 @@
this.managementList = res.list; this.managementList = res.list;
var params = this.setParams() var params = this.setParams()
console.log("提交参数", JSON.stringify(params)); console.log("提交参数", JSON.stringify(params));
// unPlannedReceiptJobSubmit(params).then(res => { unPlannedReceiptJobSubmit(params).then(res => {
// if (res.data) { uni.hideLoading()
// this.showCommitSuccessMessage("<br>" + res.data) if (res.data) {
// } else { this.showCommitSuccessMessage("提交成功<br>生成计划外入库记录<br>" + res.data)
// this.showErrorMessage("[" + res.msg + "]") } else {
// } this.showErrorMessage("提交失败[" + res.msg + "]")
// uni.hideLoading() }
// }).catch(error => {
// uni.hideLoading() }).catch(error => {
// this.showErrorMessage(error) uni.hideLoading()
// }) this.showErrorMessage(error)
})
} else { } else {
uni.hideLoading(); uni.hideLoading();
this.showErrorMessage(res.message); this.showErrorMessage(res.message);
@ -340,6 +340,8 @@
detail.packingNumber, detail.batch); detail.packingNumber, detail.batch);
detail.toPackingNumber = info.packingNumber; detail.toPackingNumber = info.packingNumber;
detail.toBatch = info.batch; detail.toBatch = info.batch;
detail.toLocationCode = this.toLocationCode
detail.toContainerNumber = '';
subList.push(detail) subList.push(detail)
} }
}) })

53
pages/unPlanned/record/issueRecord.vue

@ -51,7 +51,6 @@
import comMessage from '@/mycomponents/common/comMessage.vue' import comMessage from '@/mycomponents/common/comMessage.vue'
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue' import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
import { import {
unPlannedIssueRequestSubmit,
unPlannedIssueRecordSubmit unPlannedIssueRecordSubmit
} from '@/api/request2.js'; } from '@/api/request2.js';
@ -102,7 +101,6 @@
detailSource: [], // detailSource: [], //
reason: "", reason: "",
reasonList: [], reasonList: [],
fromType: "",
dataContent:{} dataContent:{}
} }
}, },
@ -121,12 +119,6 @@
}, },
onLoad(option) { onLoad(option) {
this.fromType = option.fromType
if (this.fromType == "requestType") {
updateTitle("计划外出库申请")
} else {
updateTitle("计划外出库记录")
}
}, },
methods: { methods: {
@ -223,24 +215,7 @@
this.showErrorMessage("请选择出库原因") this.showErrorMessage("请选择出库原因")
return; return;
} }
var params =this.setParams()
if(this.fromType=="requestType"){
var params = this.setRequestParams();
console.log("提交参数",JSON.stringify(params));
// unPlannedIssueRequestSubmit(params).then(res => {
// uni.hideLoading()
// if (res.data) {
// this.showCommitSuccessMessage("<br>" + res.data, )
// } else {
// this.showErrorMessage("[" + res.msg + "]")
// }
// }).catch(error => {
// uni.hideLoading()
// this.showErrorMessage(error)
// })
}else {
// unPlannedIssueRecordSubmit(params).then(res => { // unPlannedIssueRecordSubmit(params).then(res => {
// uni.hideLoading() // uni.hideLoading()
// if (res.data) { // if (res.data) {
@ -252,7 +227,6 @@
// uni.hideLoading() // uni.hideLoading()
// this.showErrorMessage(error) // this.showErrorMessage(error)
// }) // })
}
}, },
setParams() { setParams() {
@ -271,31 +245,6 @@
return subList; return subList;
}, },
setRequestParams(){
var subList = []
var supplierCode=""
this.detailSource.forEach(item => {
item.subList.forEach(detail => {
if (detail.scaned) {
if(supplierCode==""){
supplierCode = detail.package.supplierCode
}
subList.push(detail)
}
})
})
this.dataContent.subList = subList
this.dataContent.supplierCode = supplierCode
this.dataContent.businessType = "PurchasePutaway"
this.dataContent.departmentCode= "研发部门";
this.dataContent.status= 1 ;
this.dataContent.autoCommit = "FALSE";
this.dataContent.autoAgree = "FALSE";
this.dataContent.autoExecute = "FALSE";
this.dataContent.directCreateRecord = "FALSE";
return this.dataContent;
},
} }
} }
</script> </script>

55
pages/unPlanned/record/receiptRecord.vue

@ -52,7 +52,6 @@
import comMessage from '@/mycomponents/common/comMessage.vue' import comMessage from '@/mycomponents/common/comMessage.vue'
import { import {
unPlannedReceiptRequestbSubmit,
unPlannedReceiptRecordbSubmit unPlannedReceiptRecordbSubmit
} from '@/api/request2.js'; } from '@/api/request2.js';
@ -99,7 +98,6 @@
businessTypeCode: "UnplannedReceipt", businessTypeCode: "UnplannedReceipt",
reason: "", reason: "",
reasonList: [], reasonList: [],
fromType: "",
showToLoaction:true, showToLoaction:true,
dataContent:{} dataContent:{}
} }
@ -120,20 +118,9 @@
}, },
onLoad(option) { onLoad(option) {
this.fromType = option.fromType
this.updateTitle();
}, },
methods: { methods: {
updateTitle(){
if (this.fromType == "requestType") {
updateTitle("计划外入库申请")
this.showToLoaction =false
} else {
updateTitle("计划外入库记录")
this.showToLoaction =true
}
},
openScanPopup() { openScanPopup() {
this.$refs.scanPopup.openScanPopup(); this.$refs.scanPopup.openScanPopup();
}, },
@ -249,21 +236,6 @@
return; return;
} }
if(this.fromType=="requestType"){
var params = this.setRequestParams()
console.log("提交" + JSON.stringify(params))
// unPlannedReceiptRequestbSubmit(params).then(res => {
// uni.hideLoading()
// if (res.data) {
// this.showCommitSuccessMessage("<br>" + res.data, )
// } else {
// this.showErrorMessage("[" + res.msg + "]")
// }
// }).catch(error => {
// uni.hideLoading()
// this.showErrorMessage(error)
// })
}else {
// //
var itemCodes = [] var itemCodes = []
this.detailSource.forEach(item => { this.detailSource.forEach(item => {
@ -292,7 +264,6 @@
this.showErrorMessage(res.message); this.showErrorMessage(res.message);
} }
}); });
}
}, },
setParams(queryModel) { setParams(queryModel) {
@ -328,32 +299,6 @@
return this.dataContent; return this.dataContent;
}, },
setRequestParams(){
var subList = []
var supplierCode=""
this.detailSource.forEach(item => {
item.subList.forEach(detail => {
if (detail.scaned) {
if(supplierCode==""){
supplierCode = detail.package.supplierCode
}
subList.push(detail)
}
})
})
this.dataContent.subList = subList
this.dataContent.supplierCode = supplierCode
this.dataContent.businessType = "PurchasePutaway"
this.dataContent.departmentCode= "研发部门";
this.dataContent.status= 1 ;
this.dataContent.autoCommit = "FALSE";
this.dataContent.autoAgree = "FALSE";
this.dataContent.autoExecute = "FALSE";
this.dataContent.directCreateRecord = "FALSE";
return this.dataContent;
},
} }
} }
</script> </script>

130
pages/unPlanned/request/issueRequest.vue

@ -33,13 +33,19 @@
import { import {
goHome, goHome,
updateTitle updateTitle,
clearTirmAndWrap
} from '@/common/basic.js'; } from '@/common/basic.js';
import { import {
getBusinessType, getBusinessType,
} from '@/common/record.js'; } from '@/common/record.js';
import { import {
getUnPlannedIssueRequestList, getUnPlannedIssueRequestList,
unPlannedIssueRequestApprove,
unPlannedIssueRequestClose,
unPlannedIssueRequestApproveAgree,
unPlannedIssueRequestApproveRefused,
unPlannedIssueRequestHandle
} from '@/api/request2.js'; } from '@/api/request2.js';
import { import {
getDetailOption, getDetailOption,
@ -82,7 +88,7 @@
this.detailOptions = getDetailOption(); this.detailOptions = getDetailOption();
this.detailAndApproveOptions = getDetailAndApproveOption() this.detailAndApproveOptions = getDetailAndApproveOption()
this.detailAndApprovePassAndApproveNoOption = getDetailAndApprovePassAndApproveNoOption(), this.detailAndApprovePassAndApproveNoOption = getDetailAndApprovePassAndApproveNoOption(),
this.detailAndHandleOption = getDetailAndHandleOption() this.detailAndHandleOption = getDetailAndHandleOption()
this.detailAndCloseOption = getDetailAndCloseOption() this.detailAndCloseOption = getDetailAndCloseOption()
}, },
@ -204,21 +210,39 @@
}, },
swipeClick(e, dataContent) { swipeClick(e, dataContent) {
if (e.content.text == "详情") { var text = clearTirmAndWrap(e.content.text)
console.log("详情", dataContent.id) if (text == "详情") {
this.openRequestInfoPopup(dataContent); this.openRequestInfoPopup(dataContent);
} else if (e.content.text == "处理") { } else if (text == "处理") {
console.log("处理") this.showQuestionMessage("确定要处理当前申请吗?",res=>{
} else if (e.content.text == "审批") { this.unPlannedIssueRequestHandle(dataContent.id)
console.log("审批") })
} else if (e.content.text == "审批通过") { } else if (text == "提交审批") {
console.log("审批通过") this.showQuestionMessage("确定要审批当前申请吗?",res=>{
} else if (e.content.text == "审批驳回") { this.unPlannedIssueRequestApprove(dataContent.id)
console.log("审批驳回") })
} else if (e.content.text == "关闭") { } else if (text == "审批通过") {
console.log("关闭") this.showQuestionMessage("确定要审批通过当前申请吗?",res=>{
this.unPlannedIssueRequestApproveAgree(dataContent.id)
})
} else if (text == "审批驳回") {
this.showQuestionMessage("确定要审批驳回当前申请吗?",res=>{
this.unPlannedIssueRequestApproveRefused(dataContent.id)
})
} else if (text == "关闭") {
this.showQuestionMessage("确定要关闭当前申请吗?",res=>{
this.unPlannedIssueRequestClose(dataContent.id)
})
} }
}, },
showQuestionMessage(hint,callBack){
this.$refs.comMessage.showQuestionMessage(hint,
res => {
if (res) {
callBack()
}
});
},
switchChangeWait(state, jobStatus) { switchChangeWait(state, jobStatus) {
this.checkedWaitTask = state; this.checkedWaitTask = state;
this.status = jobStatus; this.status = jobStatus;
@ -267,6 +291,84 @@
} }
}); });
}, },
unPlannedIssueRequestApprove(id) {
unPlannedIssueRequestApprove(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请提交审批成功"
})
} else {
this.showMessage("申请提交审批失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedIssueRequestClose(id) {
unPlannedIssueRequestClose(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请关闭成功"
})
} else {
this.showMessage("申请关闭失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedIssueRequestApproveAgree(id) {
unPlannedIssueRequestApproveAgree(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请审批通过成功"
})
} else {
this.showMessage("申请审批通过失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedIssueRequestApproveRefused(id) {
unPlannedIssueRequestApproveRefused(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请审批驳回成功"
})
} else {
this.showMessage("申请审批驳回失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedIssueRequestHandle(id) {
unPlannedIssueRequestHandle(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请处理成功"
})
} else {
this.showMessage("申请处理失败")
}
}).catch(error => {
this.showMessage(error)
})
},
} }
} }

191
pages/unPlanned/request/issueRequestCreate.vue

@ -3,36 +3,42 @@
<view class=""> <view class="">
<com-blank-view @goScan='showFromLocationPopup' v-if="detailSource.length==0"></com-blank-view> <com-blank-view @goScan='showFromLocationPopup' v-if="detailSource.length==0"></com-blank-view>
</view> </view>
<view class="page-wraper" v-if="detailSource.length>0"> <view class="page-wraper" v-if="detailSource.length>0">
<view class="page-main"> <view class="flex u-col-center" style="width: 100%;background-color:#fff;">
<scroll-view scroll-y="true" class="page-main-scroll"> <view class="" style="margin-left: 20rpx; font-size: 30rpx;flex-shrink: 0;">出库原因</view>
<uni-data-picker style="padding: 20rpx; background-color:#fff;" class='uni-data-picker' <view style="width: 100%">
placeholder="请选择出库原因" popup-title="出库原因" :localdata="reasonList" v-model="reason"> <uni-data-picker style="background-color:#fff;margin-right: 20rpx;" class='uni-data-picker'
</uni-data-picker> placeholder="请选择出库原因" popup-title="出库原因" :localdata="reasonList" @change="reasonChange">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id"> </uni-data-picker>
<view class="">
<record-com-detail-card :dataContent="item" :index="index"
@removeItem="removeItem(index,item)" @updateData="updateData" :isShowLocation="true"
@removePack="removePack">
</record-com-detail-card>
</view> </view>
<u-line />
</view>
</scroll-view>
</view>
<view class="page-footer">
<view class="uni-flex u-col-center space-between padding_10"
style="background-color:ghostwhite; width: 100%; ">
<view class="">
</view> </view>
<view class=" uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button> <view class="page-main" >
<scroll-view scroll-y="true" class="page-main-scroll">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
<view class="">
<record-com-detail-card :dataContent="item" :index="index"
@removeItem="removeItem(index,item)" @updateData="updateData" :isShowLocation="true"
@removePack="removePack">
</record-com-detail-card>
</view>
<u-line />
</view>
</scroll-view>
</view>
<view class="page-footer">
<view class="uni-flex u-col-center space-between padding_10"
style="background-color:ghostwhite; width: 100%; ">
<view class="">
</view>
<view class=" uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
</view>
</view> </view>
</view> </view>
<win-scan-button @goScan='openScanPopup'></win-scan-button>
</view> </view>
<win-scan-button @goScan='openScanPopup'></win-scan-button>
</view>
<win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult' :title="'箱码'"> <win-scan-pack-and-location ref="scanPopup" @getResult='getScanResult' :title="'箱码'">
</win-scan-pack-and-location> </win-scan-pack-and-location>
<win-scan-location ref="scanFromLocationCode" title="来源库位" @getLocation='getLocation' <win-scan-location ref="scanFromLocationCode" title="来源库位" @getLocation='getLocation'
@ -51,8 +57,7 @@
import comMessage from '@/mycomponents/common/comMessage.vue' import comMessage from '@/mycomponents/common/comMessage.vue'
import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue' import recordComDetailCard from '@/mycomponents/record/recordComDetailCard.vue'
import { import {
unPlannedIssueRequestSubmit, unPlannedIssueRequestCreate,
unPlannedIssueRecordSubmit
} from '@/api/request2.js'; } from '@/api/request2.js';
import { import {
@ -76,7 +81,10 @@
import { import {
goHome, goHome,
updateTitle updateTitle,
getCurrDateTimes,
getCurrDateOneMonthsTimes,
navigateBack
} from '@/common/basic.js'; } from '@/common/basic.js';
export default { export default {
@ -100,14 +108,19 @@
toInventoryStatus: [], toInventoryStatus: [],
businessType: {}, // businessType: {}, //
detailSource: [], // detailSource: [], //
reason: "", reasonText: "",
reasonCode: "",
reasonList: [], reasonList: [],
fromType: "", dataContent: {},
dataContent:{}
} }
}, },
mounted() { mounted() {
},
onLoad(option) {
this.reasonList = getUnPlannedIssuseReasonList()
var typeCode = "UnplannedDeliver" var typeCode = "UnplannedDeliver"
getBusinessType(typeCode, res => { getBusinessType(typeCode, res => {
if (res.success) { if (res.success) {
@ -118,15 +131,7 @@
this.$refs.comMessage.showBreakMessage(res.message); this.$refs.comMessage.showBreakMessage(res.message);
} }
}); });
},
onLoad(option) {
this.fromType = option.fromType
if (this.fromType == "requestType") {
updateTitle("计划外出库申请")
} else {
updateTitle("计划外出库记录")
}
}, },
methods: { methods: {
@ -219,83 +224,71 @@
this.detailSource.splice(index, 1) this.detailSource.splice(index, 1)
}, },
commit() { commit() {
if (this.reason == '') { if (this.reasonText == '') {
this.showErrorMessage("请选择出库原因") this.showErrorMessage("请选择出库原因")
return; return;
} }
if(this.detailSource.length==0){
if(this.fromType=="requestType"){ this.showErrorMessage("请先扫描数据")
var params = this.setRequestParams(); return;
console.log("提交参数",JSON.stringify(params));
// unPlannedIssueRequestSubmit(params).then(res => {
// uni.hideLoading()
// if (res.data) {
// this.showCommitSuccessMessage("<br>" + res.data, )
// } else {
// this.showErrorMessage("[" + res.msg + "]")
// }
// }).catch(error => {
// uni.hideLoading()
// this.showErrorMessage(error)
// })
}else {
// unPlannedIssueRecordSubmit(params).then(res => {
// uni.hideLoading()
// if (res.data) {
// this.showCommitSuccessMessage("<br>" + res.data, )
// } else {
// this.showErrorMessage("[" + res.msg + "]")
// }
// }).catch(error => {
// uni.hideLoading()
// this.showErrorMessage(error)
// })
} }
}, uni.showLoading({
setParams() { title: "提交中....",
var subList = [] mask: true
this.detailSource.forEach(item => { });
item.subList.forEach(detail => {
if (detail.scaned) { var params = this.setRequestParams();
// var info = getPackingNumberAndBatch(this.managementList, detail.itemCode, console.log("提交参数", JSON.stringify(params));
// detail.packingNumber, detail.batch); unPlannedIssueRequestCreate(params).then(res => {
// detail.toPackingNumber =info.packingNumber; uni.hideLoading()
// detail.toBatch =info.batch; if (res.data) {
subList.push(detail) this.showCommitSuccessMessage("提交成功<br>生成计划外出库申请<br>" + res.data)
} } else {
}) this.showErrorMessage("提交失败[" + res.msg + "]")
}
}).catch(error => {
uni.hideLoading()
this.showErrorMessage(error)
}) })
return subList;
}, },
setRequestParams(){ setRequestParams() {
var subList = [] var subList = []
var supplierCode=""
this.detailSource.forEach(item => { this.detailSource.forEach(item => {
item.subList.forEach(detail => { item.subList.forEach(detail => {
if (detail.scaned) { if (detail.scaned) {
if(supplierCode==""){ detail.fromLocationCode = detail.locationCode;
supplierCode = detail.package.supplierCode detail.reason = this.reasonCode;
} detail.containerNumber ="";
subList.push(detail) subList.push(detail)
} }
}) })
}) })
this.dataContent.subList = subList this.dataContent.subList = subList
this.dataContent.supplierCode = supplierCode this.dataContent.status = 1;
this.dataContent.businessType = "PurchasePutaway" this.dataContent.requestTime = getCurrDateTimes();
this.dataContent.departmentCode= "研发部门"; this.dataContent.dueTime = getCurrDateOneMonthsTimes();
this.dataContent.status= 1 ;
this.dataContent.autoCommit = "FALSE";
this.dataContent.autoAgree = "FALSE";
this.dataContent.autoExecute = "FALSE";
this.dataContent.directCreateRecord = "FALSE";
return this.dataContent; return this.dataContent;
}, },
showCommitSuccessMessage(hint) {
this.$refs.comMessage.showSuccessMessage(hint, res => {
navigateBack(1)
})
},
reasonChange(e) {
if (e.detail.value.length == 0) {
this.reasonCode = ""
this.reasonText = ""
} else {
this.reasonCode = e.detail.value[0].value
this.reasonText = e.detail.value[0].text
}
}
} }
} }
</script> </script>

133
pages/unPlanned/request/receiptRequest.vue

@ -35,11 +35,17 @@
} from '@/common/record.js'; } from '@/common/record.js';
import { import {
goHome, goHome,
updateTitle updateTitle,
clearTirmAndWrap
} from '@/common/basic.js'; } from '@/common/basic.js';
import { import {
getUnPlannedReceiptRequestList, getUnPlannedReceiptRequestList,
unPlannedReceiptRequestApprove,
unPlannedReceiptRequestClose,
unPlannedReceiptRequestApproveAgree,
unPlannedReceiptRequestApproveRefused,
unPlannedReceiptRequestHandle
} from '@/api/request2.js'; } from '@/api/request2.js';
import { import {
getDetailOption, getDetailOption,
@ -82,7 +88,7 @@
this.detailOptions = getDetailOption(); this.detailOptions = getDetailOption();
this.detailAndApproveOptions = getDetailAndApproveOption() this.detailAndApproveOptions = getDetailAndApproveOption()
this.detailAndApprovePassAndApproveNoOption = getDetailAndApprovePassAndApproveNoOption(), this.detailAndApprovePassAndApproveNoOption = getDetailAndApprovePassAndApproveNoOption(),
this.detailAndHandleOption = getDetailAndHandleOption() this.detailAndHandleOption = getDetailAndHandleOption()
this.detailAndCloseOption = getDetailAndCloseOption() this.detailAndCloseOption = getDetailAndCloseOption()
}, },
@ -197,27 +203,45 @@
openScanDetailPopup() { openScanDetailPopup() {
uni.navigateTo({ uni.navigateTo({
url: "./receiptRequest?fromType=" + this.fromType url: "./receiptRequestCreate"
}) })
}, },
swipeClick(e, dataContent) { swipeClick(e, dataContent) {
if (e.content.text == "详情") { var text = clearTirmAndWrap(e.content.text)
console.log("详情", dataContent.id) if (text == "详情") {
this.openRequestInfoPopup(dataContent); this.openRequestInfoPopup(dataContent);
} else if (e.content.text == "处理") { } else if (text == "处理") {
console.log("处理") this.showQuestionMessage("确定要处理当前申请吗?",res=>{
} else if (e.content.text == "审批") { this.unPlannedReceiptRequestHandle(dataContent.id)
console.log("审批") })
} else if (e.content.text == "审批通过") { } else if (text == "提交审批") {
console.log("审批通过") this.showQuestionMessage("确定要审批当前申请吗?",res=>{
} else if (e.content.text == "审批驳回") { this.unPlannedReceiptRequestApprove(dataContent.id)
console.log("审批驳回") })
} else if (e.content.text == "关闭") { } else if (text == "审批通过") {
console.log("关闭") this.showQuestionMessage("确定要审批通过当前申请吗?",res=>{
this.unPlannedReceiptRequestApproveAgree(dataContent.id)
})
} else if (text == "审批驳回") {
this.showQuestionMessage("确定要审批驳回当前申请吗?",res=>{
this.unPlannedReceiptRequestApproveRefused(dataContent.id)
})
} else if (text == "关闭") {
this.showQuestionMessage("确定要关闭当前申请吗?",res=>{
this.unPlannedReceiptRequestClose(dataContent.id)
})
} }
}, },
showQuestionMessage(hint,callBack){
this.$refs.comMessage.showQuestionMessage(hint,
res => {
if (res) {
callBack()
}
});
},
switchChangeWait(state, jobStatus) { switchChangeWait(state, jobStatus) {
this.checkedWaitTask = state; this.checkedWaitTask = state;
this.status = jobStatus; this.status = jobStatus;
@ -266,6 +290,83 @@
} }
}); });
}, },
unPlannedReceiptRequestApprove(id) {
unPlannedReceiptRequestApprove(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请提交审批成功"
})
} else {
this.showMessage("申请提交审批失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedReceiptRequestClose(id) {
unPlannedReceiptRequestClose(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请关闭成功"
})
} else {
this.showMessage("申请关闭失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedReceiptRequestApproveAgree(id) {
unPlannedReceiptRequestApproveAgree(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请审批通过成功"
})
} else {
this.showMessage("申请审批通过失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedReceiptRequestApproveRefused(id) {
unPlannedReceiptRequestApproveRefused(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请审批驳回成功"
})
} else {
this.showMessage("申请审批驳回失败")
}
}).catch(error => {
this.showMessage(error)
})
},
unPlannedReceiptRequestHandle(id) {
unPlannedReceiptRequestHandle(id).then(res => {
if (res.data) {
this.getList("refresh")
uni.showToast({
title: "申请处理成功"
})
} else {
this.showMessage("申请处理失败")
}
}).catch(error => {
this.showMessage(error)
})
},
} }
} }

217
pages/unPlanned/request/receiptRequestCreate.vue

@ -1,8 +1,223 @@
<template> <template>
<view class="page-wraper">
<view class="" v-if='detailSource.subList.length==0'>
<com-blank-view @goScan='goScan(true)'></com-blank-view>
</view>
<view v-else class="page-wraper">
<view class="page-main">
<view class="">
<view class="" style="margin-left: 20rpx; margin-top: 20rpx;margin-bottom:20rpx;font-size: 30rpx;">
目标库位{{detailSource.toLocationCode}}
</view>
<view class="flex u-col-center" style="width: 100%;background-color:#fff;margin-bottom: 20rpx;margin-top: 20rpx;">
<view class="" style="margin-left: 20rpx; font-size: 30rpx;flex-shrink: 0;">入库原因</view>
<view style="width: 100%">
<uni-data-picker style="background-color:#fff;margin-right: 20rpx;" class='uni-data-picker'
placeholder="请选择入库原因" popup-title="入库原因" :localdata="reasonList" @change="reasonChange">
</uni-data-picker>
</view>
</view>
</view>
<u-line />
<view v-for="(item, index) in detailSource.subList" :key="index">
<item-qty :dataContent="item" :isShowStdPack="false">
</item-qty>
<u-line />
</view>
<button class="btn_add" @click="goScan(false)">+去添加</button>
</view>
<div class="btn_bottom">
<view class="" style="display: flex;flex-direction: row;">
<view class="">
<button class="btn_commit" hover-class="btn_commit_after" @click="submit()">提交</button>
</view>
</view>
</div>
<comMessage ref="comMessage"></comMessage>
</view>
</view>
<comReceiptRequestPopup ref="comIssueRequestPopup" @confirm='requestConfirm'></comReceiptRequestPopup>
</template> </template>
<script> <script>
import {
unPlannedReceiptRequestCreate
} from '@/api/request2.js';
import {
goHome,
updateTitle,
getRemoveOption,
getISODateTime,
navigateBack,
getBatch,
getCurrDateTimes,
getCurrDateOneMonthsTimes
} from '@/common/basic.js';
import {
getUnPlannedReceiptReasonList,
} from '@/common/directory.js';
import comBlankView from '@/mycomponents/common/comBlankView.vue'
import comReceiptRequestPopup from '@/pages/unPlanned/coms/comReceiptRequestPopup.vue'
import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue'
import comMessage from '@/mycomponents/common/comMessage.vue'
import comIssueRequestCreator from '@/pages/issue/coms/comIssueRequestCreator.vue'
import itemQty from '@/mycomponents/item/itemQty.vue'
export default {
name: '',
components: {
comBlankView,
comReceiptRequestPopup,
jobDetailPopup,
comMessage,
itemQty
},
data() {
return {
jobContent: {}, //
subList: [], //subList
detailSource: {
subList: []
}, //
reasonList: [], //
reasonText: "",
reasonCode: "",
}
},
mounted() {
this.goScan(true)
},
onLoad(option) {
this.reasonList = getUnPlannedReceiptReasonList()
},
methods: {
goScan(editPosition) {
this.$refs.comIssueRequestPopup.openRequestPopup(editPosition);
},
//
requestConfirm(action, item) {
if (this.detailSource.subList.length == 0) {
this.detailSource = {
totalQty: 0,
toLocationCode:item.toLocationCode,
subList: []
}
var subItem = {
toLocationCode:item.toLocationCode,
itemCode: item.itemCode,
itemName: item.itemName,
qty: item.qty,
uom: item.uom,
}
this.detailSource.subList.push(subItem)
} else {
var result = this.detailSource.subList.filter(res => {
if (res.itemCode == item.itemCode) {
return res
}
})
//
if (result.length == 0) {
var subItem = {
itemCode: item.itemCode,
itemName: item.itemName,
qty: item.qty,
uom: item.uom
}
this.detailSource.subList.push(subItem)
} else {
//
result[0].qty += item.qty
}
}
this.caclcQty();
},
caclcQty() {
var totalQty = 0;
this.detailSource.subList.forEach(res => {
totalQty += res.qty
})
this.detailSource.totalQty = totalQty;
},
submit() {
if (this.reasonText == '') {
this.showErrorMessage("请选择入库原因")
return;
}
uni.showLoading({
title: "提交中....",
mask: true
});
var params = this.setRequestParams()
console.log("提交参数", JSON.stringify(params));
unPlannedReceiptRequestCreate(params).then(res => {
uni.hideLoading()
if (res.data) {
this.showCommitSuccessMessage("提交成功<br>生成计划外入库申请<br>" + res.data)
} else {
this.showErrorMessage("提交失败[" + res.msg + "]")
}
}).catch(error => {
uni.hideLoading()
this.showErrorMessage(error)
})
},
setRequestParams() {
var subList = []
this.detailSource.subList.forEach(detail => {
detail.toLocationCode = this.detailSource.toLocationCode;
detail.reason = this.reasonCode;
detail.containerNumber = "";
detail.batch = getBatch();
detail.inventoryStatus = "OK";
console.log("",getBatch())
subList.push(detail)
})
this.dataContent.subList = subList
this.dataContent.status = 1;
this.dataContent.requestTime = getCurrDateTimes();
this.dataContent.dueTime = getCurrDateOneMonthsTimes();
return this.dataContent;
},
showCommitSuccessMessage(hint) {
this.$refs.comMessage.showSuccessMessage(hint, res => {
navigateBack(1)
})
},
showErrorMessage(message) {
this.$refs.comMessage.showErrorMessage(message, res => {
if (res) {}
});
},
reasonChange(e) {
if (e.detail.value.length == 0) {
this.reasonCode = ""
this.reasonText = ""
} else {
this.reasonCode = e.detail.value[0].value
this.reasonText = e.detail.value[0].text
}
}
}
}
</script> </script>
<style> <style>
</style> </style>

1
static/config.json

@ -26,6 +26,7 @@
"local": "http://localhost:12080", "local": "http://localhost:12080",
"desc": "api请求地址" "desc": "api请求地址"
}, },
"tenantId": { "tenantId": {
"name": "tenantId", "name": "tenantId",
"value": "1", "value": "1",

Loading…
Cancel
Save