|
|
|
@ -92,6 +92,7 @@
|
|
|
|
|
:Surcharge="dispatchPieceCategory" |
|
|
|
|
@focus="handleRowFocus" |
|
|
|
|
@search="search" |
|
|
|
|
@change="selectChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<template v-if="slotProps.scope.column.label === '操作'"> |
|
|
|
@ -123,6 +124,7 @@
|
|
|
|
|
:Surcharge="dispatchWeightCategory" |
|
|
|
|
@focus="handleRowFocus" |
|
|
|
|
@search="search" |
|
|
|
|
@change="selectChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<template v-if="slotProps.scope.column.label === '操作'"> |
|
|
|
@ -153,6 +155,7 @@
|
|
|
|
|
:Surcharge="dispatchCubeCategory" |
|
|
|
|
@focus="handleRowFocus" |
|
|
|
|
@search="search" |
|
|
|
|
@change="selectChange" |
|
|
|
|
> |
|
|
|
|
<template #default="slotProps"> |
|
|
|
|
<template v-if="slotProps.scope.column.label === '操作'"> |
|
|
|
@ -480,7 +483,7 @@ const AdditionalcategoriesList = ref([
|
|
|
|
|
id: 1, |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'additional', //附加费标识 |
|
|
|
|
StateName: 'Commercialcial', //附加费标识 |
|
|
|
|
Warehousecategory: '', //选择框值 |
|
|
|
|
Additionalcategories: [], |
|
|
|
|
}, |
|
|
|
@ -529,7 +532,7 @@ const Timedelive = () => {
|
|
|
|
|
let timerId = setTimeout(() => { |
|
|
|
|
Deliveryloading.value = false; |
|
|
|
|
clearTimeout(timerId); // 在回调函数内部清除定时器 |
|
|
|
|
}, 300); |
|
|
|
|
}, 200); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 是否面配置楼层 |
|
|
|
@ -547,72 +550,80 @@ const MinimumChange = val => {
|
|
|
|
|
console.log(val); |
|
|
|
|
if (val) { |
|
|
|
|
form.value.dispatchMinCostMode = 1; |
|
|
|
|
form.value.dispatchMinCostType=1 |
|
|
|
|
form.value.dispatchIsUpwardJudgment = 0; |
|
|
|
|
} else { |
|
|
|
|
form.value.dispatchMinCostMode = 0; |
|
|
|
|
form.value.dispatchIsUpwardJudgment = 0; //向上判断 |
|
|
|
|
form.value.dispatchMinCostType=null |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 根据当前选择的服务类型来选择是否显示框框 |
|
|
|
|
const CommercialcialDisplay = () => { |
|
|
|
|
ServiceList.value.forEach(res => { |
|
|
|
|
if (form.value.dispatchPricingType.includes(res.value)) { |
|
|
|
|
if (res.value == 1) { |
|
|
|
|
form.value.dispatchPieceCategoryState = true; //按件是否显示 |
|
|
|
|
form.value.dispatchPieceCategoryData = [ |
|
|
|
|
{ |
|
|
|
|
index: 1, |
|
|
|
|
Warehousecategory: '', |
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'storage', //仓储标识 |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
} else if (res.value == 2) { |
|
|
|
|
form.value.dispatchWeightCategoryState = true; //按重量是否显示 |
|
|
|
|
form.value.dispatchWeightCategoryData = [ |
|
|
|
|
{ |
|
|
|
|
index: 1, |
|
|
|
|
Warehousecategory: '', |
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'storage', //仓储标识 |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
} else if (res.value == 3) { |
|
|
|
|
form.value.dispatchCubeCategoryState = true; //按方是否显示 |
|
|
|
|
form.value.dispatchCubeCategoryData = [ |
|
|
|
|
{ |
|
|
|
|
index: 1, |
|
|
|
|
Warehousecategory: '', |
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'storage', //仓储标识 |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
res.check = true; |
|
|
|
|
|
|
|
|
|
const CommercialcialDisplay = id => { |
|
|
|
|
let data = ServiceList.value.find(res => res.value == id); |
|
|
|
|
console.log(ServiceList.value, 'ServiceList.value'); |
|
|
|
|
if (data.value == 1) { |
|
|
|
|
form.value.dispatchPieceCategoryState = true; //按件是否显示 |
|
|
|
|
form.value.dispatchPieceCategoryData = [ |
|
|
|
|
{ |
|
|
|
|
index: 1, |
|
|
|
|
Warehousecategory: '', |
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'storage', //仓储标识 |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
if (data.check) { |
|
|
|
|
form.value.dispatchPieceCategoryState = true; //按件是否显示 |
|
|
|
|
} else { |
|
|
|
|
res.check = false; |
|
|
|
|
if (res.value == 1) { |
|
|
|
|
form.value.dispatchPieceCategoryState = false; //按件是否显示 |
|
|
|
|
} else if (res.value == 2) { |
|
|
|
|
form.value.dispatchWeightCategoryState = false; //按重量是否显示 |
|
|
|
|
} else if (res.value == 3) { |
|
|
|
|
form.value.dispatchCubeCategoryState = false; //按方是否显示 |
|
|
|
|
} |
|
|
|
|
form.value.dispatchPieceCategoryState = false; //按件是否显示 |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} else if (data.value == 2) { |
|
|
|
|
form.value.dispatchWeightCategoryData = [ |
|
|
|
|
{ |
|
|
|
|
index: 1, |
|
|
|
|
Warehousecategory: '', |
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'storage', //仓储标识 |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
if (data.check) { |
|
|
|
|
form.value.dispatchWeightCategoryState = true; //按件是否显示 |
|
|
|
|
} else { |
|
|
|
|
form.value.dispatchWeightCategoryState = false; //按件是否显示 |
|
|
|
|
} |
|
|
|
|
} else if (data.value == 3) { |
|
|
|
|
form.value.dispatchCubeCategoryData = [ |
|
|
|
|
{ |
|
|
|
|
index: 1, |
|
|
|
|
Warehousecategory: '', |
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'storage', //仓储标识 |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
if (data.check) { |
|
|
|
|
form.value.dispatchCubeCategoryState = true; //按件是否显示 |
|
|
|
|
} else { |
|
|
|
|
form.value.dispatchCubeCategoryState = false; //按件是否显示 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 点击菜单 |
|
|
|
|
const isChecked = value => { |
|
|
|
|
const isChecked = item => { |
|
|
|
|
console.log(item.value, '点击菜单value'); |
|
|
|
|
if (!form.value.WarehousebillingmodeTitle) { |
|
|
|
|
ElMessage({ |
|
|
|
|
message: '请先选择仓储计费类型', |
|
|
|
@ -620,17 +631,22 @@ const isChecked = value => {
|
|
|
|
|
}); |
|
|
|
|
form.value.dispatchPricingType = []; //清空选择 |
|
|
|
|
|
|
|
|
|
value.check = false; //取消当前勾选 |
|
|
|
|
item.check = false; //取消当前勾选 |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
CommercialcialDisplay(); // 根据当前选择的服务类型来选择是否显示框框 |
|
|
|
|
CommercialcialDisplay(item.value); // 根据当前选择的服务类型来选择是否显示框框 |
|
|
|
|
Timedelive(); //加载效果 |
|
|
|
|
}; |
|
|
|
|
// 点击移除 |
|
|
|
|
const removeTag = value => { |
|
|
|
|
console.log(value, '点击移除value'); |
|
|
|
|
Deliveryloading.value = true; |
|
|
|
|
// 根据当前选择的服务类型来选择是否显示框框 |
|
|
|
|
CommercialcialDisplay(); // 根据当前选择的服务类型来选择是否显示框框 |
|
|
|
|
|
|
|
|
|
let data = ServiceList.value.find(res => res.value == value); |
|
|
|
|
data.check = false; |
|
|
|
|
data.state = false; |
|
|
|
|
CommercialcialDisplay(value); // 根据当前选择的服务类型来选择是否显示框框 |
|
|
|
|
Timedelive(); //加载效果 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -665,7 +681,7 @@ const storagereduce = id => {
|
|
|
|
|
}; |
|
|
|
|
// 仓储加 |
|
|
|
|
const storageplus = () => { |
|
|
|
|
addItemAfterId(form.value.dispatchPieceCategoryData, 'Commercialcial'); |
|
|
|
|
addItemAfterId(form.value.dispatchPieceCategoryData, 'storage'); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 按重量减 |
|
|
|
@ -674,7 +690,7 @@ const categoriesduceweight = id => {
|
|
|
|
|
}; |
|
|
|
|
// 按重量加 |
|
|
|
|
const categoriesplusweight = () => { |
|
|
|
|
addItemAfterId(form.value.dispatchWeightCategoryData, 'Commercialcial'); |
|
|
|
|
addItemAfterId(form.value.dispatchWeightCategoryData, 'storage'); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 按方计费减 |
|
|
|
@ -683,7 +699,7 @@ const categoriesducesquare = id => {
|
|
|
|
|
}; |
|
|
|
|
// 按方计费加 |
|
|
|
|
const categoriesplussquare = () => { |
|
|
|
|
addItemAfterId(form.value.dispatchCubeCategoryData, 'Commercialcial'); |
|
|
|
|
addItemAfterId(form.value.dispatchCubeCategoryData, 'storage'); |
|
|
|
|
}; |
|
|
|
|
// 附加费减 |
|
|
|
|
const categoriesduceSurcharge = id => { |
|
|
|
@ -761,10 +777,16 @@ async function updateDictionary(targetArray, dictionaryType) {
|
|
|
|
|
...data, |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
console.log(Commercialcial.value, 'Commercialcial.value===>>>>????'); |
|
|
|
|
|
|
|
|
|
CommercialcialCopy.value = deepClone(Commercialcial.value); |
|
|
|
|
// 配送服务类型标题 |
|
|
|
|
|
|
|
|
|
console.log(form.value.dispatchServiceType,'服务类型aa'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
console.log(form.value, '服务类型'); |
|
|
|
|
|
|
|
|
|
// 是否类型 |
|
|
|
|
if (dictionaryType == 'price_yes_no') { |
|
|
|
|
Leftoverparts.value = { ...Distinguishcategories.value }; //是否有遗留件 |
|
|
|
@ -800,11 +822,29 @@ const search = val => {
|
|
|
|
|
console.log(res, '附加费品类计费'); |
|
|
|
|
if (res.data.code == 200) { |
|
|
|
|
if (res.data.data.length) { |
|
|
|
|
let concatdata = null; |
|
|
|
|
let data = null; |
|
|
|
|
SelectData.value.options = []; //如果有新的参数就清空之前的 |
|
|
|
|
console.log(SelectData.value.StateName, 'SelectData.value.StateName'); |
|
|
|
|
res.data.data.forEach(item => { |
|
|
|
|
if (SelectData.value.StateName == 'storage') { |
|
|
|
|
//仓储 |
|
|
|
|
concatdata = form.value.dispatchCubeCategoryData.concat( |
|
|
|
|
form.value.dispatchWeightCategoryData, |
|
|
|
|
form.value.dispatchPieceCategoryData |
|
|
|
|
); |
|
|
|
|
data = concatdata.find(res => res.Warehousecategory == item.goodsId); |
|
|
|
|
} else if (SelectData.value.StateName == 'Commercialcial') { |
|
|
|
|
//附加费 |
|
|
|
|
data = form.value.dispatchSubjoinCategoryData.find( |
|
|
|
|
res => res.Warehousecategory == item.goodsId |
|
|
|
|
); |
|
|
|
|
console.log(data, '213123'); |
|
|
|
|
} |
|
|
|
|
SelectData.value.options.push({ |
|
|
|
|
label: item.goodsName, |
|
|
|
|
value: item.goodsId, |
|
|
|
|
disabled: data ? true : false, |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
@ -817,6 +857,49 @@ const search = val => {
|
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
function updateOptions(allDropdowns) { |
|
|
|
|
// 拉平所有的下拉框组到一个单一数组中 |
|
|
|
|
let dropdowns = [].concat(...allDropdowns); |
|
|
|
|
|
|
|
|
|
// 遍历每个下拉框 |
|
|
|
|
dropdowns.forEach((dropdown, index, self) => { |
|
|
|
|
// 取出当前下拉框选中的值 |
|
|
|
|
let selectedValue = dropdown.Warehousecategory; |
|
|
|
|
|
|
|
|
|
// 更新其他下拉框的options状态 |
|
|
|
|
self.forEach(otherDropdown => { |
|
|
|
|
if (dropdown !== otherDropdown) { // 确保不是自身 |
|
|
|
|
otherDropdown.options.forEach(option => { |
|
|
|
|
// 如果选项值和当前下拉框选中值相同,则禁用该选项 |
|
|
|
|
if (option.value === selectedValue) { |
|
|
|
|
option.disabled = true; |
|
|
|
|
} else { |
|
|
|
|
// 如果其他逻辑导致应保持禁用,可以在这里加上,下面的语句是检查是否已在别处被选中 |
|
|
|
|
let isSelectedSomewhereElse = self.some(d => d !== otherDropdown && d.Warehousecategory === option.value); |
|
|
|
|
option.disabled = isSelectedSomewhereElse; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造一个包括所有下拉列表的数组 |
|
|
|
|
|
|
|
|
|
// 选择框值发生改变 |
|
|
|
|
const selectChange = data => { |
|
|
|
|
// console.log(data, 'data'); |
|
|
|
|
// console.log(form.value.dispatchCubeCategoryData,'dispatchCubeCategoryData111'); |
|
|
|
|
// console.log(form.value.dispatchWeightCategoryData,'dispatchWeightCategoryData222'); |
|
|
|
|
// console.log(form.value.dispatchPieceCategoryData,'dispatchPieceCategoryData333'); |
|
|
|
|
|
|
|
|
|
let allDropdowns = [form.value.dispatchCubeCategoryData, form.value.dispatchWeightCategoryData, form.value.dispatchPieceCategoryData]; |
|
|
|
|
// 更新选项 |
|
|
|
|
updateOptions(allDropdowns); |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
const categoriesSearchfocus = item => { |
|
|
|
|
console.log(item, 'item'); |
|
|
|
|
SelectOpin.value = item; //获取当前点击的是那个品类输入框 |
|
|
|
@ -824,16 +907,17 @@ const categoriesSearchfocus = item => {
|
|
|
|
|
// 附加费是否按品类计费 |
|
|
|
|
const SurchargeChange = val => { |
|
|
|
|
if (val) { |
|
|
|
|
AdditionalcategoriesList.value = [ |
|
|
|
|
{ |
|
|
|
|
id: 1, |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'additional', //附加费标识 |
|
|
|
|
Warehousecategory: '', //选择框值 |
|
|
|
|
Additionalcategories: [], |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
form.value.dispatchSubjoinCategoryData = [ |
|
|
|
|
{ |
|
|
|
|
index: 1, |
|
|
|
|
Warehousecategory: '', |
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'Commercialcial', |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
// 附加品类的搜索 |
|
|
|
@ -935,10 +1019,6 @@ const onLoad = async () => {
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// 配送服务类型标题 |
|
|
|
|
form.value.WarehousebillingmodeTitle = Warehousebillingmode.value.find( |
|
|
|
|
res => res.value == form.value.dispatchServiceType |
|
|
|
|
).label; |
|
|
|
|
StateDelivery.value = true; //显示表格 |
|
|
|
|
form.value.dispatchPieceCategoryData = []; |
|
|
|
|
if (request.value.dispatchPieceCategory) { |
|
|
|
@ -1052,7 +1132,7 @@ const onLoad = async () => {
|
|
|
|
|
], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'additional', |
|
|
|
|
StateName: 'Commercialcial', |
|
|
|
|
loading: false, |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
@ -1064,16 +1144,18 @@ const onLoad = async () => {
|
|
|
|
|
options: [], |
|
|
|
|
plus: true, |
|
|
|
|
reduce: false, |
|
|
|
|
StateName: 'additional', |
|
|
|
|
StateName: 'Commercialcial', |
|
|
|
|
loading: false, |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
console.log( |
|
|
|
|
form.value.dispatchSubjoinCategoryData, |
|
|
|
|
' console.log( form.value.dispatchSubjoinCategoryData);' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (form.value.dispatchServiceType) { |
|
|
|
|
form.value.WarehousebillingmodeTitle = Warehousebillingmode.value.find( |
|
|
|
|
res => res.value == form.value.dispatchServiceType |
|
|
|
|
).label; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
formedit.value = await deepClone(form.value); |
|
|
|
|
pageLoading.value = false; |
|
|
|
@ -1501,6 +1583,7 @@ const handleSubmit = async () => {
|
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: center; |
|
|
|
|
cursor: pointer; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|