Переглянути джерело

Merge remote-tracking branch 'origin/master'

master
梁超 2 тижднів тому
джерело
коміт
ce57b126c8

+ 38
- 54
src/views/inventoryControl/newInventory/allocationManagement/addOrUpdate.vue Переглянути файл

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

return newarr.push(
newarr.push(
{ {
startId: column.startId, startId: column.startId,
endId: column.endId, endId: column.endId,
isShowBtn: false isShowBtn: false
} }
); );
nextTick(()=>{
handleApplyCount(column,index)
})
return newarr
}) })
addForm.value.detailList = newarr; addForm.value.detailList = newarr;
ElMessage.success(info)

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

}) })

} }


// 初始化还原数据 // 初始化还原数据
// successTotal: bizContent.successTotal, // successTotal: bizContent.successTotal,
// total: bizContent.total, // 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, // isShowBtn: true,
// failTotal: bizContent.failTotal, // failTotal: bizContent.failTotal,
// successTotal: bizContent.successTotal,
successTotal: row.count,
// total: bizContent.total, // total: bizContent.total,
// }
}
// let msg = `${bizContent.info}, 总数:${bizContent.total},成功:${bizContent.successTotal},失败:${bizContent.failTotal}` // let msg = `${bizContent.info}, 总数:${bizContent.total},成功:${bizContent.successTotal},失败:${bizContent.failTotal}`
ElMessage.success(res.message); ElMessage.success(res.message);
} else { } else {
addForm.value.detailList.push({ addForm.value.detailList.push({
startId: "", startId: "",
endId: "", endId: "",
// warranty: "",
count: 0, count: 0,
isShowBtn: false, isShowBtn: false,
failTotal: 0, failTotal: 0,


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

// console.log(addForm.value, idex);
if (idex) { if (idex) {
let params = { let params = {
id: idex id: idex
emit("closeHandle"); emit("closeHandle");
ElMessage.success("确认入库成功"); ElMessage.success("确认入库成功");
clearData(); 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 { } else {
btnLoding.value = false; btnLoding.value = false;
ElMessage.error(res.message); ElMessage.error(res.message);


// 计算conut // 计算conut
function handleApplyCount(row: IObject, index) { 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;
}
} }


// 合并合计行 // 合并合计行
// 合计行计算 // 合计行计算
function getSummaries(param) { function getSummaries(param) {
//table自定义合计行方法summary-method //table自定义合计行方法summary-method
// console.log("====>",param)
const {columns, data} = param; const {columns, data} = param;
const sums: any = []; const sums: any = [];
columns.forEach((column, index) => { columns.forEach((column, index) => {
if (sums[1]) { if (sums[1]) {
str = `共${data.length}号段,${sums[1]}个设备`; str = `共${data.length}号段,${sums[1]}个设备`;
if (summary.value) { 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; sums[1] = str;

+ 40
- 51
src/views/inventoryControl/putInstorage/addOrUpdate.vue Переглянути файл

"refreshDataList" "refreshDataList"
]) ])
const handleChange = (value) => { const handleChange = (value) => {
console.log(value)
} }


const uploadUrl = "/minIo/upload" const uploadUrl = "/minIo/upload"
brand: [{required: true, message: "请选择设备厂商", trigger: "blur"}], brand: [{required: true, message: "请选择设备厂商", trigger: "blur"}],
}) })
const props2 = { const props2 = {
value: "id",
value: "code",
label: "name", label: "name",
children: "subordinateModel", children: "subordinateModel",
// multiple: true, // multiple: true,


// 初始化 // 初始化
function init(row: any) { function init(row: any) {
console.log("测试:",row)
getLowerList(); getLowerList();
// getAgency(); // getAgency();
clearData(); clearData();
if (res && res.code === 0) { if (res && res.code === 0) {
let bizContent = res.data let bizContent = res.data
let data = bizContent.enterApply || {}; let data = bizContent.enterApply || {};
console.log("===data", data);
let detailList = bizContent.applyDetailsList || []; let detailList = bizContent.applyDetailsList || [];
let list: any = []; let list: any = [];
detailList.map((item) => { detailList.map((item) => {
BaseService.postN('/invw/api/enterApply/parseExcel', {excelUrl: response.data.ossFilePath}).then((res: any) => { BaseService.postN('/invw/api/enterApply/parseExcel', {excelUrl: response.data.ossFilePath}).then((res: any) => {
if (res && res.code === 0) { if (res && res.code === 0) {
let bizContent = res.data; let bizContent = res.data;
console.log(bizContent)
// console.log(bizContent)
let info = bizContent.modelList || ""; let info = bizContent.modelList || "";
let data = bizContent.modelList let data = bizContent.modelList
let newarr: any = [] let newarr: any = []
); );
}) })
addForm.value.detailList = newarr; addForm.value.detailList = newarr;
ElMessage.success(info)

//进行排序
startIdSort();
ElMessage.success(res.message)
} else { } else {
ElMessage.error(res.message) 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
});
} }


// 初始化还原数据 // 初始化还原数据
}); });
} }


// 校验结束编号
//编号规则。设备类型是卡的话,位数是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 inventoryType = addForm.value.inventoryType;
let indexArr = rule.field.split("-"); let indexArr = rule.field.split("-");
let index = indexArr[1]; let index = indexArr[1];
return callback(new Error("必须是数字!")); return callback(new Error("必须是数字!"));
} }
let length = val.length; let length = val.length;
//长度校验
if (inventoryType === "CARD" && length !== 20) { if (inventoryType === "CARD" && length !== 20) {
return callback(new Error("卡编号位数是20!")); return callback(new Error("卡编号位数是20!"));
} else if (inventoryType === "OBU" && length !== 16) { } else if (inventoryType === "OBU" && length !== 16) {
return callback(new Error("OBU编号位数是16!")); return callback(new Error("OBU编号位数是16!"));
} }

//进行排序
startIdSort();
// 开始编号不能大于结束编号校验
if ( if (
val && 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 ( 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(); 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 inventoryType = addForm.value.inventoryType;
let indexArr = rule.field.split("-"); let indexArr = rule.field.split("-");
let index = indexArr[1]; let index = indexArr[1];
return callback(new Error("必须是数字!")); return callback(new Error("必须是数字!"));
} }
let length = val.length; let length = val.length;
//长度校验
if (inventoryType === "CARD" && length !== 20) { if (inventoryType === "CARD" && length !== 20) {
return callback(new Error("卡编号位数是20!")); return callback(new Error("卡编号位数是20!"));
} else if (inventoryType === "OBU" && length !== 16) { } else if (inventoryType === "OBU" && length !== 16) {
return callback(new Error("OBU编号位数是16!")); return callback(new Error("OBU编号位数是16!"));
} }
// 开始编号不能大于结束编号校验
if ( if (
val && 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(); callback();
} }
} }
list.push(tem); list.push(tem);
}) })
console.log(params);


let params2 = {} let params2 = {}
params2.enterApplyDetailModels = list; params2.enterApplyDetailModels = list;
params2.inventoryType = params.inventoryType; params2.inventoryType = params.inventoryType;
params2.ownType = params.ownType; params2.ownType = params.ownType;
params2.storeCode = params.storeCode; 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.version = params.version;
params2.cardType = params.cardType; params2.cardType = params.cardType;
params2.obuType = params.obuType; params2.obuType = params.obuType;
// let api = '/invw/inventory/addinventoryapply'; // let api = '/invw/inventory/addinventoryapply';
let api = '/invw/api/enterApply/apply'; let api = '/invw/api/enterApply/apply';
console.log("typeOption.value", typeOption.value)
if (typeOption.value === 'add') { if (typeOption.value === 'add') {
delete params2.id delete params2.id
} }


// 获取仓库状态 // 获取仓库状态
function getLowerList() { function getLowerList() {
// console.log("获取仓库列表")
let params = { let params = {
allType: 0 allType: 0
} }


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

+ 5
- 21
src/views/inventoryControl/putInstorage/index.vue Переглянути файл

<el-select clearable v-model="searchForm.inventoryType" style="width: 200px" placeholder="请选择设备类型"> <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-option v-for="item in inventoryTypeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </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"> <template v-slot="scope">
<span v-if="searchForm.inventoryType == 'CARD'"> <span v-if="searchForm.inventoryType == 'CARD'">
<el-option v-for="item in cardManufacturerList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in cardManufacturerList" :key="item.value" :label="item.label" :value="item.value" />
}) })
const cardManufacturerList = computed(() => { const cardManufacturerList = computed(() => {
// return $storeinitData.state.dictData['CARD_EQUIPMENT_MANUFACTURER_TYPE'] || [] // 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(() => { const typeList = computed(() => {
// return $storeinitData.state.dictData['DEVICE_TYPE'] || [] // return $storeinitData.state.dictData['DEVICE_TYPE'] || []


// 获取仓库状态 // 获取仓库状态
function getLowerList() { function getLowerList() {
// console.log("获取仓库列表")
let params = { let params = {
allType: 0 allType: 0
} }
// console.log(res) // console.log(res)
if (res && res.code === 0) { if (res && res.code === 0) {
let bizContent = res.data let bizContent = res.data
console.log(bizContent)
let data = bizContent.idNames || []; let data = bizContent.idNames || [];
interfaceLowerListArr.value = data interfaceLowerListArr.value = data
} else { } else {
return return
} }
let ids = list.map((item) => item.id) 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) => { (res: any) => {
if (res && res.code === 0) { 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 { } else {
ElMessage.error(res.message) ElMessage.error(res.message)
} }

Завантаження…
Відмінити
Зберегти