You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1014 lines
24 KiB

let maxPageSize = 1000;
export {
maxPageSize
}
import { calc } from '@/common/calc'
let jobStatusList = [];
let itemStatusList = [];
let locationTypeList = [];
let uomList = [];
let inventoryStatusList = [];
let containerTypeList = [];
let packUnitList = [];
let requestStatusList = [];
let unplannedReceiptReasonList = [];
let unplannedIissueReason = [];
let scrapReasonList = [];
let inspectFailedReasonList = [];
//获取字典信息
export function clearCacheData() {
jobStatusList = [];
itemStatusList = [];
locationTypeList = [];
uomList = [];
inventoryStatusList = [];
containerTypeList = [];
packUnitList = [];
requestStatusList = [];
unplannedReceiptReasonList = [];
unplannedIissueReason = [];
scrapReasonList = [];
inspectFailedReasonList = [];
}
//获取字典信息
export function getDirectoryInfo(type) {
var result = [];
var list = uni.getStorageSync("dictionary")
if (list != undefined && list.length > 0) {
for (let item of list) {
if (item.type == type) {
result = item.subList
break;
}
}
}
return result
}
//将字典项转为数组
export function getDirectoryItemArray(data) {
var array = []
if (data == undefined || data == null || data == "") {
return array
}
if (data.indexOf(',') < 0) {
array.push(data)
} else {
var arrayItems = data.split(',')
arrayItems.forEach(res => {
array.push(res)
})
}
return array
}
//查询字典项是否在列表中
export function checkDirectoryItemExist(list, type) {
let exist = false;
if (list == null || list.length == 0) {
exist = true;
} else {
var temp = list.filter(res => {
if (res == type) {
return res
}
})
if (temp != undefined && temp.length > 0) {
exist = true
}
}
return exist
}
//获取任务状态
export function getJobStateInfo(value) {
var resultInfo = "";
if (jobStatusList.length == 0) {
jobStatusList = getDirectoryInfo("job_status")
}
if (jobStatusList.length > 0) {
for (let item of jobStatusList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取任务状态样式
export function getJobStateStyle(value) {
let item = getJobStateInfo(value);
if (item == null || item == '') {
return 'other'
} else {
if (item.remark == '') {
return 'other'
} else {
return item.remark;
}
}
}
//获取库位描述
export function getListLocationTypeDesc(lst) {
let desc = '';
lst.forEach(res => {
desc += getLocationTypeInfo(res).label + ","
})
desc = desc.slice(0, -1);
return desc;
}
//获取物品状态
export function getItemStateInfo(value) {
var resultInfo = "";
if (itemStatusList.length == 0) {
itemStatusList = getDirectoryInfo("item_status")
}
if (itemStatusList.length > 0) {
for (let item of itemStatusList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取库位类型
export function getLocationTypeInfo(value) {
var resultInfo = "";
if (locationTypeList.length == 0) {
locationTypeList = getDirectoryInfo("location_type")
}
if (locationTypeList.length > 0) {
for (let item of locationTypeList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取库位类型名称
export function getLocationTypeName(value) {
let location = getLocationTypeInfo(value);
return location == '' ? value : location.label;
}
//获取计量单位
export function getUnitInfo(value) {
var resultInfo = "";
if (uomList.length == 0) {
uomList = getDirectoryInfo("uom")
}
if (uomList.length > 0) {
for (let item of uomList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取包装单位
export function getStdPackUnitInfo(value) {
var resultInfo = "";
if (packUnitList.length == 0) {
packUnitList = getDirectoryInfo("pack_unit")
}
if (packUnitList.length > 0) {
for (let item of packUnitList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取申请状态
export function getRequestStateInfo(value) {
var resultInfo = "";
if (requestStatusList.length == 0) {
requestStatusList = getDirectoryInfo("request_status")
}
if (requestStatusList.length > 0) {
for (let item of requestStatusList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取库存状态
export function getInventoryStatusInfo(value) {
var resultInfo = "";
if (inventoryStatusList.length == 0) {
inventoryStatusList = getDirectoryInfo("inventory_status")
}
if (inventoryStatusList.length > 0) {
for (let item of inventoryStatusList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取库存样式
export function getInventoryStatusStyle(value) {
let item = getInventoryStatusInfo(value);
if (item == null || item == '') {
return 'other'
} else {
if (item.remark == '') {
return 'other'
} else {
return item.remark;
}
}
}
//获取库存状态
export function getInventoryStatusName(value) {
let item = getInventoryStatusInfo(value);
if (item == null || item == '') {
return value
} else {
if (item.label == '') {
return value
} else {
return item.label;
}
}
}
//获取状态描述
export function getInventoryStatusDesc(lst) {
let desc = '';
lst.forEach(res => {
desc += getInventoryStatusInfo(res).label + ","
})
desc = desc.slice(0, -1);
return desc;
}
//获取器具状态
export function getContainerStatusInfo(value) {
var resultInfo = "";
if (containerTypeList.length == 0) {
containerTypeList = getDirectoryInfo("container_type")
}
if (containerTypeList.length > 0) {
for (let item of containerTypeList) {
if (item.value == value) {
resultInfo = item
break;
}
}
}
return resultInfo
}
//获取计划外入库原因
export function getUnPlannedReceiptReasonList(value) {
if (unplannedReceiptReasonList.length == 0) {
unplannedReceiptReasonList = getDirectoryInfo("unplanned_receipt_reason")
}
unplannedReceiptReasonList.forEach(res => {
res.text = res.label;
res.value = res.code
})
return unplannedReceiptReasonList
}
//获取计划外出库原因
export function getUnPlannedIssuseReasonList(value) {
if (unplannedIissueReason.length == 0) {
unplannedIissueReason = getDirectoryInfo("unplanned_issue_reason")
}
unplannedIissueReason.forEach(res => {
res.text = res.label;
res.value = res.code
})
return unplannedIissueReason
}
//获取检验不合格原因
export function getInspectReasonList(value) {
if (inspectFailedReasonList.length == 0) {
inspectFailedReasonList = getDirectoryInfo("inspect_failed_reason")
}
inspectFailedReasonList.forEach(res => {
res.text = res.label;
res.value = res.code
})
return inspectFailedReasonList
}
// //数量状态
// export function getCoutJobStatuStyle(val) {
// if (val == 1) return 'state_inspect'
// else if (val == 2) return 'state_ok'
// else if (val == 3) return 'state_nook'
// else return 'other'
// }
// export function getCountJobStatuDesc(val) {
// if (val == 1) return '待检'
// else if (val == 2) return '合格'
// else if (val == 3) return '不合格'
// else return "未知"
// }
// export function getPartCodeState(val) {
// if (val == 0) return '可用'
// else if (val == 1) return '新增'
// else if (val == 2) return '隔离'
// else if (val == 3) return '未知'
// else return '未知'
// }
// export function getLocationState(val) {
// if (val == 'kwlxINSP') return '待检库'
// else if (val == 'kwlxRAW') return '原料库'
// else if (val == 'kwlxSEMI') return '半成品库'
// else if (val == 'kwlxFG') return '成品库'
// else if (val == 'kwlxWIP') return '线边库'
// else if (val == 'kwlxHOLD') return '隔离库'
// else if (val == 'kwlxSCRAP') return '报废库'
// else if (val == 'kwlxNOK') return '不合格品库'
// else if (val == 'kwxOVERFLOW') return '溢出库'
// else if (val == 'kwlxCUsT') return '客户寄售库'
// else if (val == 'kwlxOUTSIDE') return '外库'
// else if (val == 'kwlxDIFF') return '盘点差异库'
// else if (val == 'kwxTRANSPORT') return '在途库'
// else return '未知'
// }
// export function getLocationStyle(val) {
// if (val == 'kwlxRAW') return 'state_raw'
// else if (val == 'kwlxFG') return 'state_fg'
// else if (val == 'kwlxSEMI') return 'state_semi'
// else if (val == 'kwlxHOLD') return 'state_hold'
// else if (val == 4) return 'state_unk'
// }
// //任务状态
// export function getJobStatuStyle(val) {
// if (val == 'JOB_PENDING') return 'job_state_un-doing'
// else if (val == '1') return 'job_state_doing'
// else if (val == 'reztDONE') return 'job_state_completed'
// else if (val == 'rwztCLOSED') return 'job_state_close'
// else if (val == 'rwztCANCELLED') return 'job_state_cancelled'
// else return 'unk'
// }
// //任务状态
// //open pending completed close
// export function getJobStatuDesc(val) {
// if (val == 'JOB_PENDING') return '待处理'
// else if (val == '1') return '执行中'
// else if (val == 'reztDONE') return '完成'
// else if (val == 'rwztCLOSED') return '关闭'
// else if (val == 'rwztCANCELLED') return '作废'
// else return '其他'
// }
// //检验任务状态
// export function getInspectTypeStyle(val) {
// if (val == 0) return 'unk'
// else if (val == 1) return 'exempt'
// else if (val == 2) return 'full'
// else if (val == 3) return 'sampling'
// else if (val == 4) return 'pick'
// else return 'other'
// }
// //open pending completed close
// export function getInspectTypeDesc(val) {
// if (val == 0) return '未知'
// else if (val == 1) return '免检'
// else if (val == 2) return '全检'
// else if (val == 3) return '抽检'
// else if (val == 4) return '挑选'
// else return '其他'
// }
// //库存状态
// export function getInventoryStatusStyle(val) {
// if (val == 'kcztUNK') return 'unk'
// else if (val == 'kcztINSP') return 'inventory_status_insp'
// else if (val == 'kcztOK') return 'inventory_status_ok'
// else if (val == 'kcztNOK') return 'inventory_status_nok'
// else if (val == 'kcztHOLD') return 'inventory_status_hold'
// else if (val == 'kcztSCRAP') return 'inventory_status_scarp'
// else return 'other'
// }
// //库存状态
// export function getInventoryStatusDesc(val) {
// if (val == 'kcztUNK') return '未知'
// else if (val == 'kcztINSP') return '待检'
// else if (val == 'kcztOK') return '合格'
// else if (val == 'kcztNOK') return '不合格'
// else if (val == 'kcztHOLD') return '隔离'
// else if (val == 'kcztSCRAP') return '报废'
// else return '其他'
// }
// //库存状态
// export function getInventoryStatusStyle(val) {
// if (val == 0) return 'unk'
// else if (val == 1) return 'insp'
// else if (val == 2) return 'ok'
// else if (val == 3) return 'nok'
// else if (val == 4) return 'hold'
// else if (val == 5) return 'scarp'
// else if (val == 6) return 'frozen'
// else if (val == 31) return 'nok'
// else return 'other'
// }
// //库存状态kcztINSP
// export function getInventoryStatusDesc(val) {
// if (val == 0) return '未知'
// else if (val == 1) return '待检'
// else if (val == 2) return '合格'
// else if (val == 3) return '不合格'
// else if (val == 4) return '隔离'
// else if (val == 5) return '报废'
// else if (val == 6) return '冻结'
// else if (val == 31) return '不合格'
// // else if (val == 31) return '目检不合格'
// else return '其他'
// }
// //物料状态
// export function getItemStatusStyle(val) {
// if (val == "wpztUNK") return 'item_unk'
// else if (val == "wpztENABLE") return 'item_active'
// else if (val == "wpztHOLD") return 'item_hold'
// else if (val == "wpztNEW") return 'item_new'
// else if (val == "wpztPLAN") return 'item_plan'
// else if (val == "wpztDISABLE") return 'item_disable'
// else return 'other'
// }
// export function getItemStatusStyle(val) {
// if (val == 0) return 'unk_item'
// else if (val == 1) return 'active_item'
// else if (val == 2) return 'hold_item'
// else if (val == 3) return 'new_item'
// else if (val == 4) return 'plan_item'
// else if (val == 5) return 'disable_item'
// else return 'other'
// }
// //物料状态描述
// export function getItemStatusDesc(val) {
// if (val == "wpztUNK") return '未知'
// else if (val == "wpztENABLE") return '可用'
// else if (val == "wpztHOLD") return '隔离'
// else if (val == "wpztNEW") return '新增'
// else if (val == "wpztPLAN") return '规划'
// else if (val == "wpztDISABLE") return '禁用'
// else return '其他'
// }
// //盘点状态
// export function getCountStageTypeStyle(val) {
// if (val == 0) return 'unk'
// else if (val == 1) return 'initial'
// else if (val == 2) return 'afresh'
// else if (val == 3) return 'supervision'
// else return 'other'
// }
// //盘点状态
// export function getCountStageDesc(val) {
// if (val == 0) return '未知'
// else if (val == 1) return '初盘'
// else if (val == 2) return '重盘'
// else if (val == 3) return '监盘'
// else return '其他'
// }
// //盘点计划类型
// export function getCheckTypeDesc(val) {
// if (val == 0) return '未知'
// else if (val == 1) return '周期盘点'
// else if (val == 2) return '物理盘点'
// else return '其他'
// }
// //盘点方式
// export function getCountMethodDesc(val) {
// if (val == 0) return '未知'
// else if (val == 1) return '库位盘点'
// else if (val == 2) return '物品盘点'
// else if (val == 3) return '库位物料盘点'
// else return '其他'
// }
// //获取库位类型
// export function getLocationType(val) {
// if (val == 'kwlxINSP') return 'location_inspect'
// else if (val == 'kwlxRAW') return 'location_raw'
// else if (val == 'kwlxSEMI') return 'location_semi'
// else if (val == 'kwlxFG') return 'location_fg'
// else if (val == 'kwlxWIP') return 'location_wip'
// else if (val == 'kwlxHOLD') return 'location_hold'
// else if (val == 'kwlxSCRAP') return 'location_scrap'
// else if (val == 'kwlxNOK') return 'location_nok'
// else if (val == 'kwxOVERFLOW') return 'location_overflow'
// else if (val == 'kwlxCUsT') return 'location_cust'
// else if (val == 'kwlxOUTSIDE') return 'location_outside'
// else if (val == 'kwlxDIFF') return 'location_diff'
// else if (val == 'kwxTRANSPORT') return 'location_transport'
// else return 'location_other'
// }
// //获取库位类型描述
// export function getLocationTypeDesc(val) {
// if (val == 'kwlxINSP') return '待检库'
// else if (val == 'kwlxRAW') return '原料库'
// else if (val == 'kwlxSEMI') return '半成品库'
// else if (val == 'kwlxFG') return '成品库'
// else if (val == 'kwlxWIP') return '线边库'
// else if (val == 'kwlxHOLD') return '隔离库'
// else if (val == 'kwlxSCRAP') return '报废库'
// else if (val == 'kwlxNOK') return '不合格品库'
// else if (val == 'kwxOVERFLOW') return '溢出库'
// else if (val == 'kwlxCUsT') return '客户寄售库'
// else if (val == 'kwlxOUTSIDE') return '外库'
// else if (val == 'kwlxDIFF') return '盘点差异库'
// else if (val == 'kwxTRANSPORT') return '在途库'
// else return '其他'
// }
// //获取任务类型描述
// export function getJobType(val) {
// if (val == 0) return 'uno'
// else if (val == 1) return 'PurchaseReceiptJob' //采购收货
// else if (val == 2) return 'PurchaseReturnJob' //采购退货任务
// else if (val == 3) return 'InspectJob' //检验任务
// else if (val == 4) return 'PutawayJob' //上架任务
// else if (val == 5) return 'ProductReceiveJob' //完工收货任务
// else if (val == 6) return 'IssueJob' //发料任务
// else if (val == 7) return 'DeliverJob' //发货任务
// else if (val == 8) return 'CheckJob' //校验任务
// else if (val == 9) return 'CountJob' //盘点任务
// else return 'Other'
// }
export function getPackingNumberAndBatchByList(managementList, itemCode, packingNumber, locationCode, batch) {
var itemInfo = {
packingNumber: "",
batch: ""
}
var manageType = queryManageModelByList(managementList, itemCode, locationCode)
if (manageType == "BY_QUANTITY") {
itemInfo.packingNumber = ""
itemInfo.batch = ""
} else if (manageType == "BY_BATCH") {
itemInfo.packingNumber = ""
itemInfo.batch = batch
} else if (manageType == "BY_PACKAGING") {
itemInfo.packingNumber = packingNumber
itemInfo.batch = batch
} else if (manageType == "BY_UNIQUE_ID") {
itemInfo.packingNumber = packingNumber
itemInfo.batch = batch
} else if (manageType == "") {
itemInfo.packingNumber = packingNumber
itemInfo.batch = batch
}
return itemInfo;
}
export function queryManageModelByList(managementList, itemCode, locationCode) {
var result = managementList.find(res => {
if (res.itemCode == itemCode && res.locationCode == locationCode) {
return res.ManagementPrecision
}
})
if (result != undefined) {
return result.ManagementPrecision
} else {
return ""
}
}
// 获取业务类型字典项
export function getBusinessTypeDesc(type) {
if (type == "SupplierDeliver") {
return "供应商发货"
} else if (type = "PurchaseReceipt") {
return "采购收货";
} else if (type = "PurchaseReturn") {
return "采购退货";
} else if (type = "PurchasePutaway") {
return "采购上架";
}
}
export function queryManageModel(managementList, itemCode) {
var result = managementList.filter(res => {
if (res.itemCode == itemCode) {
return res.ManagementPrecision
}
})
if (result != undefined) {
return result[0].ManagementPrecision
} else {
return ""
}
}
export function getPackingNumberAndBatch(managementList, itemCode, packingNumber, batch) {
var itemInfo = {
packingNumber: "",
batch: ""
}
var manageType = queryManageModel(managementList, itemCode)
if (manageType == "BY_QUANTITY") {
itemInfo.packingNumber = ""
itemInfo.batch = ""
} else if (manageType == "BY_BATCH") {
itemInfo.packingNumber = ""
itemInfo.batch = batch
} else if (manageType == "BY_PACKAGING") {
itemInfo.packingNumber = packingNumber
itemInfo.batch = batch
} else if (manageType == "BY_UNIQUE_ID") {
itemInfo.packingNumber = packingNumber
itemInfo.batch = batch
}
return itemInfo;
}
// //提示是否消息
// export function showConfirmMsg(content, callback) {
// uni.showModal({
// title: '提示',
// cancelText: '否',
// confirmText: '是',
// content: content,
// success: function(res) {
// if (res.confirm) {
// callback(true);
// } else {
// callback(false);
// }
// },
// })
// scanErrorAudio();
// }
export function compareTime() {
return function(a, b) {
// 按照时间降序
return Date.parse(a.time) - Date.parse(a.time)
}
}
//升序
export function compareAsc(key) {
return function(a, b) {
var val1 = a[key];
var val2 = b[key];
return val1 - val2;
}
}
//倒序
export function compareDesc(key) {
return function(a, b) {
var val1 = a[key];
var val2 = b[key];
return val2 - val1;
}
}
export function goHome() {
uni.reLaunch({
url: '/pages/index/index'
}).catch((e) => {});
}
/**
* 获取当天时间2023-11-07 00:00:00-->2023-11-07 23:59:59
*/
export function getTodayDate() {
var startTime = new Date(new Date().toLocaleDateString()).getTime();
var endTime = startTime + 24 * 60 * 60 * 1000 - 1
console.log("获取时间", 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() {
var date = new Date();
return getDate(date);
}
export function getCurrDateTime() {
var date = new Date();
return getDate(date) + " " + getTime(date);
}
export function getISODateTime() {
var date = new Date();
return getDate(date) + "T" + getTime(date) + "Z";
}
//格式化处理
export function dateFormat(time) {
var result = ""
if (time != null) {
let date = new Date(time);
result = getDate(date) + " " + getTime(date);
}
return result;
}
//获取日期部分
export function getDate(date) {
var year = date.getFullYear(); //年
var month = date.getMonth() + 1; //月
var day = date.getDate(); //日
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
return year + "-" + month + "-" + day;
}
//获取时间部分
export function getTime(date) {
let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
// 拼接
return hours + ":" + minutes + ":" + seconds;
}
//将20220713转成2022-07-13
export function toYYYY_MM_DD(value) {
return value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6, 8)
}
export function getRootFontSize() {
const self = this;
var fontSize = getApp().globalData.rootFontSize;
if (fontSize) {
return fontSize;
} else {
fontSize = uni.getStorageSync('root_font_size');
if (fontSize) {
getApp().globalData.rootFontSize = fontSize;
} else {
fontSize = '20px'; //默认字体大小
self.setRootFontSize(fontSize);
}
return fontSize;
}
}
export function getRemoveOption() {
let options = [{
text: '移除',
style: {
backgroundColor: '#F56C6C'
}
}]
return options;
}
export function setRootFontSize(fontSize) {
uni.setStorageSync('root_font_size', fontSize);
getApp().globalData.rootFontSize = fontSize;
}
export function scanErrorAudio() {
var music = null;
music = uni.createInnerAudioContext(); //创建播放器对象
music.src = "../../static/video/error.wav";
music.volume = 1;
music.play(); //执行播放
music.onEnded(() => {
//播放结束
music = null;
});
}
export function newMessageAudio() {
var music = null;
music = uni.createInnerAudioContext(); //创建播放器对象
music.src = "../../static/video/error.wav";
music.volume = 1;
music.play(); //执行播放
music.onEnded(() => {
//播放结束
music = null;
});
}
export function vibrate() {
uni.vibrateLong({
success: function() {
}
})
}
export function getDataSource(subList) {
let items = [];
subList.forEach(detail => {
var item = items.find(r =>
r.itemCode == detail.itemCode)
if (item == undefined) {
item = createItemInfo(detail);
let newDetail = createDetailInfo(detail); //
item.subList.push(newDetail);
items.push(item)
} else {
item.qty = calc.add(item.qty,detail.qty)
let newDetail = createDetailInfo(detail); //
item.subList.push(newDetail);
}
})
return items;
}
export function createItemInfo(res) {
let item = {
itemCode: res.itemCode,
itemName: res.itemName,
stdPackQty: Number(res.stdPackQty),
stdPackUnit: res.stdPackUnit,
qty: Number(res.qty),
handleQty: 0,
uom: res.uom,
subList: []
}
return item;
}
export function createDetailInfo(data) {
data.scaned = false;
// data.record = {};
let detail = data;
return detail;
}
export function updateTitle(title) {
uni.setNavigationBarTitle({
title: title
})
}
export function clearTirmAndWrap(content) {
return content.replace(/<\/?.+?\/?>|\r|\n|\s*/g, '')
}
export function navigateBack(backIndex) {
let canNavBack = getCurrentPages()
if (canNavBack && canNavBack.length - 1 > backIndex) {
uni.navigateBack({
delta: backIndex
})
} else {
history.back();
}
}
/**
* 深度克隆对象
* @param {*} target
*/
export function deepCopyData(target) {
// 克隆原始类型和null
if (!(target !== null && (typeof target === 'object' || typeof target === 'function'))) {
return target;
}
let cloneTarget = Array.isArray(target) ? [] : {};
// 克隆对象和数组
for (const key in target) {
cloneTarget[key] = deepCopyData(target[key]);
}
return cloneTarget;
}