|
|
@@ -9,71 +9,94 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<div> |
|
|
|
<el-form-item label="备货单号" prop="applyNo" v-if="typeOption !== 'add'"> |
|
|
|
<el-input maxlength="60" v-trim clearable v-model="addForm.applyNo" :disabled="true"/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="入库仓库名称" prop="storeCode"> |
|
|
|
<el-select clearable v-model="addForm.storeCode" placeholder="请选择仓库名称" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in interfaceLowerListArr" :key="item.code" :label="item.name" |
|
|
|
:value="item.code"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="产权" prop="ownType"> |
|
|
|
<el-select clearable v-model="addForm.ownType" placeholder="请选择产权" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in OWN_TYPE" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="入库设备类型" prop="inventoryType"> |
|
|
|
<el-select clearable v-model="addForm.inventoryType" placeholder="请选择入库设备类型" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'" @change="changeDeviceType"> |
|
|
|
<el-option v-for="item in deviceTypeList" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="设备型号" prop="version"> |
|
|
|
<el-select clearable v-model="addForm.version" placeholder="请选择设备型号(先先择入库设备类型)" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
|
|
|
|
<el-option v-if="addForm.inventoryType === 'CARD'" v-for="item in cardDeviceVersion" |
|
|
|
:key="item.value" :label="item.label" :value="item.value"/> |
|
|
|
<el-option v-if="addForm.inventoryType === 'OBU'" v-for="item in obuDeviceVersion" |
|
|
|
:key="item.value" :label="item.label" :value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="采购厂商" prop="brand"> |
|
|
|
<el-select clearable v-model="addForm.brand" placeholder="请选择设备厂商" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
|
|
|
|
<el-option v-if="addForm.inventoryType === 'OBU'" v-for="item in manufacturerList" |
|
|
|
:key="item?.value" :label="item.label" :value="item.value"/> |
|
|
|
<el-option v-if="addForm.inventoryType === 'CARD'" v-for="item in cardManufacturerList" |
|
|
|
:key="item.value" :label="item.label" :value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="签类型" prop="obuType" v-if="addForm.inventoryType === 'OBU'"> |
|
|
|
<el-select clearable v-model="addForm.obuType" placeholder="请选择签类型" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in obuType" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="卡类型" prop="cardType" v-if="addForm.inventoryType === 'CARD'"> |
|
|
|
|
|
|
|
<el-select clearable v-model="addForm.cardType" placeholder="请选择卡类型" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in cardType" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="取消入库原因" v-if="addForm.applyStatus === 'CANCEL'" > |
|
|
|
<el-input type="textarea" v-model="addForm.reason" :disabled="typeOption === 'view'"/> |
|
|
|
</el-form-item> |
|
|
|
<el-col :span="12" v-if="typeOption !== 'add'"> |
|
|
|
<el-form-item label="备货单号" prop="applyNo" v-if="typeOption !== 'add'"> |
|
|
|
<el-input maxlength="60" v-trim clearable v-model="addForm.applyNo" :disabled="true"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="入库仓库名称" prop="storeCode"> |
|
|
|
<el-select clearable v-model="addForm.storeCode" placeholder="请选择仓库名称" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in interfaceLowerListArr" :key="item.code" :label="item.name" |
|
|
|
:value="item.code"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="产权" prop="ownType"> |
|
|
|
<el-select clearable v-model="addForm.ownType" placeholder="请选择产权" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in OWN_TYPE" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="入库设备类型" prop="inventoryType"> |
|
|
|
<el-select clearable v-model="addForm.inventoryType" placeholder="请选择入库设备类型" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'" @change="changeDeviceType"> |
|
|
|
<el-option v-for="item in deviceTypeList" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="设备型号" prop="version"> |
|
|
|
<el-select clearable v-model="addForm.version" placeholder="请选择设备型号(先先择入库设备类型)" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
|
|
|
|
<el-option v-if="addForm.inventoryType === 'CARD'" v-for="item in cardDeviceVersion" |
|
|
|
:key="item.value" :label="item.label" :value="item.value"/> |
|
|
|
<el-option v-if="addForm.inventoryType === 'OBU'" v-for="item in obuDeviceVersion" |
|
|
|
:key="item.value" :label="item.label" :value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="采购厂商" prop="brand"> |
|
|
|
<el-select clearable v-model="addForm.brand" placeholder="请选择设备厂商" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
|
|
|
|
<el-option v-if="addForm.inventoryType === 'OBU'" v-for="item in manufacturerList" |
|
|
|
:key="item?.value" :label="item.label" :value="item.value"/> |
|
|
|
<el-option v-if="addForm.inventoryType === 'CARD'" v-for="item in cardManufacturerList" |
|
|
|
:key="item.value" :label="item.label" :value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="签类型" prop="obuType" v-if="addForm.inventoryType === 'OBU'"> |
|
|
|
<el-select clearable v-model="addForm.obuType" placeholder="请选择签类型" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in obuType" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="卡类型" prop="cardType" v-if="addForm.inventoryType === 'CARD'"> |
|
|
|
<el-select clearable v-model="addForm.cardType" placeholder="请选择卡类型" |
|
|
|
:disabled="typeOption === 'view' || typeOption === 'sure'"> |
|
|
|
<el-option v-for="item in cardType" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12" v-if="addForm.applyStatus === 'CANCEL'"> |
|
|
|
<el-form-item label="取消入库原因" v-if="addForm.applyStatus === 'CANCEL'"> |
|
|
|
<el-input type="textarea" v-model="addForm.reason" :disabled="typeOption === 'view'"/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
<el-card class="box-card"> |
|
|
@@ -392,13 +415,10 @@ 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) |
|
|
|
let info = bizContent.modelList || ""; |
|
|
|
let data = bizContent.modelList |
|
|
|
let newarr: any = [] |
|
|
|
data.forEach((column, index) => { |
|
|
|
|
|
|
|
return newarr.push( |
|
|
|
newarr.push( |
|
|
|
{ |
|
|
|
startId: column.startId, |
|
|
|
endId: column.endId, |
|
|
@@ -406,6 +426,10 @@ function onSuccess(response: any) { |
|
|
|
isShowBtn: false |
|
|
|
} |
|
|
|
); |
|
|
|
nextTick(()=>{ |
|
|
|
handleApplyCount(column,index) |
|
|
|
}) |
|
|
|
return newarr |
|
|
|
}) |
|
|
|
addForm.value.detailList = newarr; |
|
|
|
//进行排序 |
|
|
@@ -568,9 +592,9 @@ function validateStartId( |
|
|
|
return callback(new Error("开始编号不能大于结束编号")); |
|
|
|
} |
|
|
|
if ( |
|
|
|
val && index>0 && |
|
|
|
addForm.value.detailList[index-1].endId && |
|
|
|
BigInt(val) <= BigInt(addForm.value.detailList[index-1].endId) |
|
|
|
val && index > 0 && |
|
|
|
addForm.value.detailList[index - 1].endId && |
|
|
|
BigInt(val) <= BigInt(addForm.value.detailList[index - 1].endId) |
|
|
|
) { |
|
|
|
return callback(new Error("开始编号要大于上一段的结束编号")); |
|
|
|
} |
|
|
@@ -683,7 +707,7 @@ function saveHandle() { |
|
|
|
params2.ownType = params.ownType; |
|
|
|
params2.storeCode = params.storeCode; |
|
|
|
var find = interfaceLowerListArr.value.find(item => item.code === params.storeCode); |
|
|
|
console.log("find",find) |
|
|
|
console.log("find", find) |
|
|
|
params2.agencyId = find.agencyId; |
|
|
|
params2.version = params.version; |
|
|
|
params2.cardType = params.cardType; |
|
|
@@ -757,28 +781,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 = startId.toString().slice(3); |
|
|
|
// let end = endId.toString().slice(3); |
|
|
|
// num = parseInt(end) - parseInt(start) + 1; |
|
|
|
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) { |
|
|
|
//num = parseInt(endId) - parseInt(startId) + 1; |
|
|
|
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; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 合并合计行 |
|
|
@@ -814,21 +832,24 @@ function getSummaries(param) { |
|
|
|
sums[1] = sums[1] |
|
|
|
} |
|
|
|
}) |
|
|
|
// let str = ""; |
|
|
|
// if (sums[1]) { |
|
|
|
// str = `共${data.length}号段,${sums[1]}个设备`; |
|
|
|
// if (summary.value) { |
|
|
|
// console.log(data, '-----'); |
|
|
|
// const successTotal = data.map((item) => Number(item.successTotal)); |
|
|
|
// console.log(successTotal.value); |
|
|
|
// console.log(4535); |
|
|
|
// let totalNum = sums[1] = successTotal.reduce((prev, curr) => { |
|
|
|
// return prev + curr |
|
|
|
// }, 0) |
|
|
|
// str = str + '已校验可入库数量' + totalNum |
|
|
|
// } |
|
|
|
// } |
|
|
|
sums[1] = `共${data.length}号段,${sums[1]}个设备`; |
|
|
|
let str = ""; |
|
|
|
if (sums[1]) { |
|
|
|
str = `共${data.length}号段,${sums[1]}个设备`; |
|
|
|
if (summary.value) { |
|
|
|
// 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; |
|
|
|
addForm.value.applyCount = totalNum |
|
|
|
str = str + ',已校验可入库数量' + totalNum |
|
|
|
} |
|
|
|
} |
|
|
|
sums[1] = str; |
|
|
|
return sums |
|
|
|
} |
|
|
|
|