ソースを参照

Merge remote-tracking branch 'origin/master'

master
梁超 1週間前
コミット
ce57b126c8

+ 38
- 54
src/views/inventoryControl/newInventory/allocationManagement/addOrUpdate.vue ファイルの表示

@@ -525,12 +525,10 @@ function onSuccess(response: any) {
BaseService.postN('/invw/api/transfer/import', {fileUrl: response.data.ossFilePath}).then((res: any) => {
if (res && res.code === 0) {
let bizContent = res.data;
let info = bizContent.transferDetails || "";
let data = bizContent.transferDetails
let newarr: any = []
data.forEach((column, index) => {

return newarr.push(
newarr.push(
{
startId: column.startId,
endId: column.endId,
@@ -538,16 +536,17 @@ function onSuccess(response: any) {
isShowBtn: false
}
);
nextTick(()=>{
handleApplyCount(column,index)
})
return newarr
})
addForm.value.detailList = newarr;
ElMessage.success(info)

ElMessage.success("导入成功")
} else {
ElMessage.error(res.message)
}

})

}

// 初始化还原数据
@@ -585,14 +584,14 @@ function validHandle(row: IObject, index) {
// successTotal: bizContent.successTotal,
// total: bizContent.total,
// }
// summary.value = true;
// addForm.value.detailList[index] = {
// ...addForm.value.detailList[index],
summary.value = true;
addForm.value.detailList[index] = {
...addForm.value.detailList[index],
// isShowBtn: true,
// failTotal: bizContent.failTotal,
// successTotal: bizContent.successTotal,
successTotal: row.count,
// total: bizContent.total,
// }
}
// let msg = `${bizContent.info}, 总数:${bizContent.total},成功:${bizContent.successTotal},失败:${bizContent.failTotal}`
ElMessage.success(res.message);
} else {
@@ -646,7 +645,6 @@ function addMoreHandle(row: IObject) {
addForm.value.detailList.push({
startId: "",
endId: "",
// warranty: "",
count: 0,
isShowBtn: false,
failTotal: 0,
@@ -835,8 +833,7 @@ function saveHandle() {

// 确认入库
function sureHandle() {
console.log(addForm.value, idex);

// console.log(addForm.value, idex);
if (idex) {
let params = {
id: idex
@@ -849,22 +846,6 @@ function sureHandle() {
emit("closeHandle");
ElMessage.success("确认入库成功");
clearData();
// let bizContent = res.data
// let url = bizContent.url || "";
// let fileName = bizContent.fileName ? `${bizContent.fileName}` : '初始设备入库明细'
// if (url) {
// //window.open(url)
// //处理下载有文件名
// BaseService.getDownloadFileName(import.meta.env.VITE_APP_UPLOAD_URL + url, fileName)
// btnLoding.value = false;
// clearData();
// emit("refreshDataList");
// emit("closeHandle");
// ElMessage.success("确认入库成功");
// } else {
// ElMessage.error("入库成功文件未返回");
// }

} else {
btnLoding.value = false;
ElMessage.error(res.message);
@@ -875,24 +856,22 @@ function sureHandle() {

// 计算conut
function handleApplyCount(row: IObject, index) {
let startId = row.startId;
let endId = row.endId;
let inventoryType = addForm.value.inventoryType;
let num = 0;
if (inventoryType === 'CARD' && startId && endId) {
let start: any = startId.toString().slice(3);
let end: any = endId.toString().slice(3);
let tem = bigNumSub(end, start);
num = bigNumAdd(tem, '1');
} else if (inventoryType === 'OBU' && startId && endId) {
let tem = bigNumSub(endId, startId);
num = bigNumAdd(tem, '1');
}
//解决合计刷新
let receiveVoValue = cloneDeep(addForm.value.detailList);
receiveVoValue[index].count = num;
addForm.value.detailList = receiveVoValue;
if(row.startId.length == row.endId.length && (row.startId.length == 20 || row.startId.length == 16)) {
let startId = row.startId;
let endId = row.endId;
let num = 0;
if (startId && endId) {
let start: any = startId.toString();
let end: any = endId.toString();
let tem = bigNumSub(end, start);
num = bigNumAdd(tem, '1');
}

//解决合计刷新
let receiveVoValue = cloneDeep(addForm.value.detailList);
receiveVoValue[index].count = num;
addForm.value.detailList = receiveVoValue;
}
}

// 合并合计行
@@ -912,6 +891,7 @@ function arraySpanMethod({row, column, rowIndex, columnIndex}) {
// 合计行计算
function getSummaries(param) {
//table自定义合计行方法summary-method
// console.log("====>",param)
const {columns, data} = param;
const sums: any = [];
columns.forEach((column, index) => {
@@ -931,12 +911,16 @@ function getSummaries(param) {
if (sums[1]) {
str = `共${data.length}号段,${sums[1]}个设备`;
if (summary.value) {
console.log(data, '-----');
const successTotal = data.map((item) => Number(item.successTotal));
let totalNum = sums[1] = successTotal.reduce((prev, curr) => {
return prev + curr
}, 0)
str = str + '已校验可入库数量' + totalNum
// console.log(data, '-----');
// 计算 successTotal 总和(自动过滤无效值)
const totalNum = data.reduce((sum, item) => {
const num = Number(item.successTotal);
return sum + (isNaN(num) ? 0 : num);
}, 0);

// 更新 sums 和字符串(避免直接修改外部变量)
sums[1] = totalNum;
str = str + ',已校验可入库数量' + totalNum
}
}
sums[1] = str;

+ 40
- 51
src/views/inventoryControl/putInstorage/addOrUpdate.vue ファイルの表示

@@ -193,7 +193,6 @@ const emit = defineEmits([
"refreshDataList"
])
const handleChange = (value) => {
console.log(value)
}

const uploadUrl = "/minIo/upload"
@@ -292,7 +291,7 @@ const rules = reactive({
brand: [{required: true, message: "请选择设备厂商", trigger: "blur"}],
})
const props2 = {
value: "id",
value: "code",
label: "name",
children: "subordinateModel",
// multiple: true,
@@ -314,7 +313,6 @@ function changeDeviceType() {

// 初始化
function init(row: any) {
console.log("测试:",row)
getLowerList();
// getAgency();
clearData();
@@ -353,7 +351,6 @@ function getInfo(id: string) {
if (res && res.code === 0) {
let bizContent = res.data
let data = bizContent.enterApply || {};
console.log("===data", data);
let detailList = bizContent.applyDetailsList || [];
let list: any = [];
detailList.map((item) => {
@@ -389,7 +386,7 @@ function onSuccess(response: any) {
BaseService.postN('/invw/api/enterApply/parseExcel', {excelUrl: response.data.ossFilePath}).then((res: any) => {
if (res && res.code === 0) {
let bizContent = res.data;
console.log(bizContent)
// console.log(bizContent)
let info = bizContent.modelList || "";
let data = bizContent.modelList
let newarr: any = []
@@ -405,14 +402,25 @@ function onSuccess(response: any) {
);
})
addForm.value.detailList = newarr;
ElMessage.success(info)

//进行排序
startIdSort();
ElMessage.success(res.message)
} else {
ElMessage.error(res.message)
}

})
}

//号段排序,空格排到最后
function startIdSort() {
addForm.value.detailList = addForm.value.detailList.sort((a, b) => {
const isAEmpty = a.startId === "" || a.startId === undefined || a.startId === null;
const isBEmpty = b.startId === "" || b.startId === undefined || b.startId === null;
if (isAEmpty && !isBEmpty) return 1; // a是空,b不是,a排在后面
if (!isAEmpty && isBEmpty) return -1; // a不是空,b是空,a排在前面
return a.startId - b.startId; // 正常比较startId
});
}

// 初始化还原数据
@@ -521,9 +529,12 @@ function addMoreHandle(row: IObject) {
});
}

// 校验结束编号
//编号规则。设备类型是卡的话,位数是20位 设备类型是OBU的话,位数的16位
function validateEndId(rule: any, value: string, callback: (e?: Error) => any) {
// 校验起始编号
function validateStartId(
rule: any,
value: string,
callback: (e?: Error) => any
) {
let inventoryType = addForm.value.inventoryType;
let indexArr = rule.field.split("-");
let index = indexArr[1];
@@ -532,40 +543,35 @@ function validateEndId(rule: any, value: string, callback: (e?: Error) => any) {
return callback(new Error("必须是数字!"));
}
let length = val.length;
//长度校验
if (inventoryType === "CARD" && length !== 20) {
return callback(new Error("卡编号位数是20!"));
} else if (inventoryType === "OBU" && length !== 16) {
return callback(new Error("OBU编号位数是16!"));
}

//进行排序
startIdSort();
// 开始编号不能大于结束编号校验
if (
val &&
addForm.value.detailList[index].startId &&
val < addForm.value.detailList[index].startId
addForm.value.detailList[index].endId &&
BigInt(val) > BigInt(addForm.value.detailList[index].endId)
) {
return callback(new Error("结束编号不能小于开始编号"));
return callback(new Error("开始编号不能大于结束编号"));
}
if (
val && addForm.value.detailList.length < index &&
addForm.value.detailList[index + 1].startId &&
val >= addForm.value.detailList[index + 1].startId
val && index>0 &&
addForm.value.detailList[index-1].endId &&
BigInt(val) <= BigInt(addForm.value.detailList[index-1].endId)
) {
return callback(new Error("结束编号要小于下一段的开始编号"));
}
// 列表中不能重复校验
let endIds = addForm.value.detailList.filter((item) => item.endId === val);
if (endIds.length > 1) {
callback(new Error("请检查,结束编号有重复"));
return callback(new Error("开始编号要大于上一段的结束编号"));
}
callback();
}

// 校验开始编号
function validateStartId(
rule: any,
value: string,
callback: (e?: Error) => any
) {
// 校验结束编号
//编号规则。设备类型是卡的话,位数是20位 设备类型是OBU的话,位数的16位
function validateEndId(rule: any, value: string, callback: (e?: Error) => any) {
let inventoryType = addForm.value.inventoryType;
let indexArr = rule.field.split("-");
let index = indexArr[1];
@@ -574,31 +580,18 @@ function validateStartId(
return callback(new Error("必须是数字!"));
}
let length = val.length;
//长度校验
if (inventoryType === "CARD" && length !== 20) {
return callback(new Error("卡编号位数是20!"));
} else if (inventoryType === "OBU" && length !== 16) {
return callback(new Error("OBU编号位数是16!"));
}
// 开始编号不能大于结束编号校验
if (
val &&
addForm.value.detailList[index].endId &&
val > addForm.value.detailList[index].endId
) {
return callback(new Error("开始编号不能大于结束编号"));
}
if (
val && index > 0 &&
addForm.value.detailList[index - 1].endId &&
val <= addForm.value.detailList[index - 1].endId
addForm.value.detailList[index].startId &&
BigInt(val) < (addForm.value.detailList[index].startId)
) {
return callback(new Error("开始编号要大于上一段的结束编号"));
}
// 列表中不能重复校验
let startIds = addForm.value.detailList.filter((item) => item.startId === val);
if (startIds.length > 1) {
callback(new Error("请检查,起始编号有重复"));
return callback(new Error("结束编号不能小于开始编号"));
}
callback();
}
@@ -674,7 +667,6 @@ function saveHandle() {
}
list.push(tem);
})
console.log(params);

let params2 = {}
params2.enterApplyDetailModels = list;
@@ -682,13 +674,12 @@ function saveHandle() {
params2.inventoryType = params.inventoryType;
params2.ownType = params.ownType;
params2.storeCode = params.storeCode;
params2.agencyId = interfaceLowerListArr.value.find(item => item.id === params.storeCode).agencyId;
params2.agencyId = interfaceLowerListArr.value.find(item => item.code === params.storeCode).agencyId;
params2.version = params.version;
params2.cardType = params.cardType;
params2.obuType = params.obuType;
// let api = '/invw/inventory/addinventoryapply';
let api = '/invw/api/enterApply/apply';
console.log("typeOption.value", typeOption.value)
if (typeOption.value === 'add') {
delete params2.id
}
@@ -828,7 +819,6 @@ function getSummaries(param) {

// 获取仓库状态
function getLowerList() {
// console.log("获取仓库列表")
let params = {
allType: 0
}
@@ -847,7 +837,6 @@ function getLowerList() {

// 获取仓库状态
function getAgency() {
// console.log("获取产权列表")
BaseService.postN('/invw/agency/list').then((res: any) => {
if (res && res.code === 0) {
let bizContent = res.data

+ 5
- 21
src/views/inventoryControl/putInstorage/index.vue ファイルの表示

@@ -4,7 +4,7 @@
<el-select clearable v-model="searchForm.inventoryType" style="width: 200px" placeholder="请选择设备类型">
<el-option v-for="item in inventoryTypeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
<el-select clearable v-model="searchForm.brand" style="width: 200px" placeholder="请选择设备厂商(先选设备类型)">
<el-select clearable v-model="searchForm.brand" style="width: 260px" placeholder="请选择设备厂商(先选设备类型)">
<template v-slot="scope">
<span v-if="searchForm.inventoryType == 'CARD'">
<el-option v-for="item in cardManufacturerList" :key="item.value" :label="item.label" :value="item.value" />
@@ -230,7 +230,8 @@ const manufacturerList = computed(() => {
})
const cardManufacturerList = computed(() => {
// return $storeinitData.state.dictData['CARD_EQUIPMENT_MANUFACTURER_TYPE'] || []
return $storeinitData.state.dictData['CARD_BRAND'] || []
var newVar = $storeinitData.state.dictData['CARD_BRAND'] || [];
return newVar
})
const typeList = computed(() => {
// return $storeinitData.state.dictData['DEVICE_TYPE'] || []
@@ -266,7 +267,6 @@ function deleteHandleShow(row: any) {

// 获取仓库状态
function getLowerList() {
// console.log("获取仓库列表")
let params = {
allType: 0
}
@@ -274,7 +274,6 @@ function getLowerList() {
// console.log(res)
if (res && res.code === 0) {
let bizContent = res.data
console.log(bizContent)
let data = bizContent.idNames || [];
interfaceLowerListArr.value = data
} else {
@@ -503,25 +502,10 @@ function sureMoreHandle() {
return
}
let ids = list.map((item) => item.id)
BaseService.postN('/invw/inventory/inventoryinstorage', { id: ids }).then(
BaseService.postN('/invw/api/enterApply/batchConfirm', { ids: ids }).then(
(res: any) => {
if (res && res.code === 0) {
ElMessage.success('入库成功')
// let bizContent = res.data
// let url = bizContent.url || ''
// let fileName = bizContent.fileName
// ? `${bizContent.fileName}.xls`
// : '初始设备入库明细.xls'
// if (url) {
// //window.open(url)
// BaseService.download(url, {}, fileName)
// ElMessage.success('入库成功')
// getList()
// btnLoading.value = false
// } else {
// btnLoading.value = false
// ElMessage.error('入库成功文件未返回')
// }
ElMessage.success(res.message)
} else {
ElMessage.error(res.message)
}

読み込み中…
キャンセル
保存