qb 1 year ago
parent
commit
2788d7781d
  1. 88
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  2. 4
      src/views/aftersales/aftersalesWorkOrderInfo.vue
  3. 218
      src/views/aftersales/aftersalesWorkOrdermodify.vue
  4. 191
      src/views/distribution/signfor/distributionSignfortreat.vue
  5. 14
      src/views/distribution/turndelivery/deliveryDiscuss.vue

88
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -8,7 +8,7 @@
<!-- <el-divider content-position="left">
<span> {{ routerState ? '信息查看' : '工单新增' }}</span>
</el-divider> -->
<el-tabs type="border-card" class="PackageInformation">
<el-tabs type="border-card" class="PackageInformation" v-show="identifying != '2'">
<el-tab-pane label="包件信息">
<div class="ResponsibilityBoxS">
<div><el-button type="primary" @click="AddPackage"> 添加信息 </el-button></div>
@ -34,6 +34,11 @@
<span class="title">运单号:</span>
<el-input v-model="item.waybillNumber" placeholder="请输入运单号" clearable />
</div>
<div class="maxBox">
<span class="title">品牌:</span>
<el-input v-model="item.brandName" placeholder="请输入品牌" clearable />
</div>
</div>
<div class="el-btn">
@ -44,7 +49,7 @@
</div>
</div>
<div class="NumTotal">
<span>总件数:{{ PackageInfo.length }}</span>
<span>总件数:{{ NumberPackages }}</span>
</div>
</div>
</el-tab-pane>
@ -270,10 +275,8 @@
<el-input v-model="Indexform.problemDescription" placeholder="请输入异常问题" clearable />
</el-form-item>
<el-form-item >
</el-form-item>
<el-form-item >
</el-form-item>
<el-form-item> </el-form-item>
<el-form-item> </el-form-item>
</el-form>
<!-- 必填 -->
@ -334,7 +337,7 @@
<el-select
v-else
v-model="item.businessName"
filterable
filterable
placeholder="请选择责任方"
@change="ResponsiblePartychange(item.businessName, index)"
>
@ -553,9 +556,10 @@ const identifying = ref(1); //订单,零担状态
const dialogHistoricalPackage = ref(false); //
const HistoricalPackageList = ref([]); //
const HistorIndex = ref(0); //
const NumberPackages = ref(0); //
const PackageInfo = ref([
//
{ packageCode: '', orderCode: '', waybillNumber: '' },
{ packageCode: '', orderCode: '', waybillNumber: '',brandName:'' },
]);
//
const FangAddList = ref([
@ -722,6 +726,7 @@ const AddPackage = () => {
//
const PackagRemoval = val => {
PackageInfo.value.splice(val, 1); //
Statistics();
};
//
const responsibleParty = () => {
@ -815,19 +820,22 @@ const ConfirmForm = () => {
DataSubmit.decreaseImageEntityList = JSON.parse(
JSON.stringify(Indexform.value['decreaseImageEntityList'])
);
console.log(Indexform.value.workOrderNumber,'Indexform.workOrderNumber12312312');
console.log(Indexform.value.workOrderNumber, 'Indexform.workOrderNumber12312312');
//
// packageEntityList
PackageInfo.value.forEach(item=>{
DataSubmit['packageEntityList'].push({
number: PackageInfo.value.length, //
packageCode: item.packageCode, //
// warehouseId: '', //ID
waybillNumber:item.waybillNumber, //
orderCode:item.orderCode, //
});
})
//
if (PackageInfo.value.length) {
PackageInfo.value.forEach(item => {
DataSubmit['packageEntityList'].push({
number: PackageInfo.value.length, //
packageCode: item.packageCode, //
// warehouseId: '', //ID
waybillNumber: item.waybillNumber, //
orderCode: item.orderCode, //
});
});
}
// DataSubmit['packageEntityList'].push({
// workOrderId: Indexform.workOrderNumber, //ID
// number: PackageInfo.value.length, //
@ -849,11 +857,11 @@ const ConfirmForm = () => {
console.log(DataSubmit.surveyRecordDTO, '调查经过');
//
// FangAddList.value
//
FangAddList.value.forEach(item => {
if(FangAddList.value.length){
//
FangAddList.value.forEach(item => {
DataSubmit['personResponsibleDTO'].push({
businessName: warehouseData.value.find(obj => obj.value == item.businessName)?.label || null, //
businessName: warehouseData.value.find(obj => obj.value == item.businessName)?.label || null, //
businessId: warehouseData.value.find(obj => obj.value == item.businessName)?.value || null,
wordOrderId: Indexform.value.workOrderNumber, //ID
description: item.description,
@ -864,6 +872,8 @@ const ConfirmForm = () => {
responsibilityRatio: item.responsibilityRatio, //
});
});
}
//
let proportion = 0; //
DataSubmit['personResponsibleDTO'].forEach(item => {
proportion += Number(item.responsibilityRatio);
@ -910,16 +920,16 @@ const ConfirmForm = () => {
delete DataSubmit.processor; //
console.log(DataSubmit, '处理好的数据');
//stringify
$_submit(DataSubmit).then(res => {
if (res.data.code == 200) {
ElMessage({
message: res.data.msg,
type: 'success',
});
Indexform.value = {}; //
$router.push('/aftersales/aftersalesWorkOrder'); //
}
});
// $_submit(DataSubmit).then(res => {
// if (res.data.code == 200) {
// ElMessage({
// message: res.data.msg,
// type: 'success',
// });
// Indexform.value = {}; //
// $router.push('/aftersales/aftersalesWorkOrder'); //
// }
// });
};
//
@ -1006,8 +1016,19 @@ const moneyBtnB = () => {
}
fleeingState.value = true; //
};
//
const Statistics = () => {
NumberPackages.value = 0;
PackageInfo.value.map(res => {
if (res.packageCode) {
NumberPackages.value++;
}
});
};
//
const ChangePackageInfo = (val, index) => {
Statistics(); //
let data = {
packageCode: val,
};
@ -1254,6 +1275,7 @@ const ViewPackageDetails = val => {
display: flex;
align-items: center;
width: 30%;
margin-right: 20px;
.title {
width: 140px;
color: #606266;

4
src/views/aftersales/aftersalesWorkOrderInfo.vue

@ -1081,7 +1081,7 @@ const CustomerServiceCompleted = () => {
businessId: $route.query.businessId,
warehouseId: $route.query.warehouseId,
workOrderNumber: $route.query.workOrderNumber,
RouterState: false,
RouterState: 'Kfend',
},
});
};
@ -1095,7 +1095,7 @@ const EditInformation = () => {
businessId: $route.query.businessId,
warehouseId: $route.query.warehouseId,
workOrderNumber: $route.query.workOrderNumber,
RouterState: true,
RouterState: 'Infoedit',
ProcessType:$route.query.ProcessType, // 1 2
},
});

218
src/views/aftersales/aftersalesWorkOrdermodify.vue

@ -472,8 +472,14 @@
<div class="dialog-footer">
<el-button @click="Indexdialog = false">取消</el-button>
<el-button type="primary" @click="ConfirmForm"> 提交 </el-button>
<el-button type="primary" @click="Arbitrationcompleted"> 客服仲裁完结 </el-button>
<el-button type="primary" @click="ConfirmForm" v-if="RouterState == 'Infoedit'">
提交
</el-button>
<!--编辑提交-->
<el-button type="primary" @click="Arbitrationcompleted" v-if="RouterState == 'Kfend'">
提交
</el-button>
<!--客服仲裁完结 -->
</div>
</el-card>
@ -627,7 +633,7 @@ const HistorIndex = ref(0); //历史包件索引
const ProcessingResults = ref([]); //
const TotalClaimAmount = ref(0); //
const TransportlossList = ref([]);
const RouterState = ref(null); //
const RouterState = ref(); //
const oldData = ref(); //
const unPackageInfo = ref(); //
const unProcessorEntityList = ref([]); //
@ -636,6 +642,7 @@ const unDecreaseImageEntityList = ref([]); //移除的货损图片
const NewImageAddress = ref([]); //
const InitialresponsibleParty = ref(); //
const ProcessingParty = ref(); //
const CopyingInfo = ref({}); //
const CompensationParty = ref([
{ name: '', state: 0, num: null, reason: '', cld: 1, explains: '' }, //
{ name: '', state: 1, num: null, reason: '', cld: 1, explains: '' }, //
@ -1336,83 +1343,71 @@ const ConfirmForm = () => {
}
}
// //
// console.log(CompensationParty.value);
// //
// DataSubmit['completionRecordEntities'] = CompensationParty.value
// .filter(item => item.state === 0) // 0
// .map(item => {
// return {
// indemnitor: item.name, //
// reason: item.reason, //
// money: Number(item.num), //
// reasonArbitration: item.reason, //
// workOrderId: $route.query.id, //
// warehouseId: $route.query.warehouseId, // ID
// };
// });
// //
// DataSubmit['completionRecipientEntities'] = CompensationParty.value
// .filter(item => item.state === 1) // 1
// .map(item => {
// return {
// recipient: item.name, //
// reasonReceivingPayment: item.reason, //
// money: Number(item.num), //
// workOrderNumber: $route.query.workOrderNumber, //
// responsibleParty: FangAddList.value
// .map(aItem =>
// warehouseData.value
// .filter(bItem => bItem.value === aItem.businessName)
// .map(match => match.label)
// .join(',')
// )
// .join(','),
// warehouseId: $route.query.warehouseId, // ID
// workOrderId: $route.query.id, //
// };
// });
// //
// DataSubmit.aftersalesProcessingResultsDTO['compensationMethod'] = ProcessingList.value
// .map(item => item.text)
// .join(',');
// DataSubmit.aftersalesProcessingResultsDTO['processingMoneyEntityList'] = ProcessingList.value
// .map(item => {
// console.log(item);
// let match = ProcessingResults.value.find(element => element.dictValue == item.name);
// if (match) {
// let paymentMethodMatch = Paymentmethod.value.find(
// paymentMethod => paymentMethod.dictKey == item.payment
// );
// return {
// resultType: match.dictKey, //key
// money: item.input, //
// typesOf: 1, //
// compensationMethod: paymentMethodMatch ? paymentMethodMatch.dictKey : '',
// compensationMethodName: paymentMethodMatch
// ? paymentMethodMatch.dictValue
// : '',
// resultName: item.name, //
// };
// } else {
// return null;
// }
// })
// .filter(item => item !== null);
// //
// console.log(CompensationParty.value);
// //
// DataSubmit['completionRecordEntities'] = CompensationParty.value
// .filter(item => item.state === 0) // 0
// .map(item => {
// return {
// indemnitor: item.name, //
// reason: item.reason, //
// money: Number(item.num), //
// reasonArbitration: item.reason, //
// workOrderId: $route.query.id, //
// warehouseId: $route.query.warehouseId, // ID
// };
// });
// //
// DataSubmit['completionRecipientEntities'] = CompensationParty.value
// .filter(item => item.state === 1) // 1
// .map(item => {
// return {
// recipient: item.name, //
// reasonReceivingPayment: item.reason, //
// money: Number(item.num), //
// workOrderNumber: $route.query.workOrderNumber, //
// responsibleParty: FangAddList.value
// .map(aItem =>
// warehouseData.value
// .filter(bItem => bItem.value === aItem.businessName)
// .map(match => match.label)
// .join(',')
// )
// .join(','),
// warehouseId: $route.query.warehouseId, // ID
// workOrderId: $route.query.id, //
// };
// });
// //
// DataSubmit.aftersalesProcessingResultsDTO['compensationMethod'] = ProcessingList.value
// .map(item => item.text)
// .join(',');
// DataSubmit.aftersalesProcessingResultsDTO['processingMoneyEntityList'] = ProcessingList.value
// .map(item => {
// console.log(item);
// let match = ProcessingResults.value.find(element => element.dictValue == item.name);
// if (match) {
// let paymentMethodMatch = Paymentmethod.value.find(
// paymentMethod => paymentMethod.dictKey == item.payment
// );
// return {
// resultType: match.dictKey, //key
// money: item.input, //
// typesOf: 1, //
// compensationMethod: paymentMethodMatch ? paymentMethodMatch.dictKey : '',
// compensationMethodName: paymentMethodMatch
// ? paymentMethodMatch.dictValue
// : '',
// resultName: item.name, //
// };
// } else {
// return null;
// }
// })
// .filter(item => item !== null);
//
console.log(DataSubmit, '处理好的数据');
@ -1435,39 +1430,38 @@ const Arbitrationcompleted = () => {
data.aftersalesProcessingResultsDTO.workOrderId = $route.query.id; //ID
DataSubmit['completionRecordEntities'] = CompensationParty.value
.filter(item => item.state === 0) // 0
.map(item => {
return {
indemnitor: item.name, //
reason: item.reason, //
money: Number(item.num), //
reasonArbitration: item.reason, //
workOrderId: $route.query.id, //
warehouseId: $route.query.warehouseId, // ID
};
});
DataSubmit['completionRecipientEntities'] = CompensationParty.value
.filter(item => item.state === 1) // 1
.map(item => {
return {
recipient: item.name, //
reasonReceivingPayment: item.reason, //
money: Number(item.num), //
workOrderNumber: $route.query.workOrderNumber, //
responsibleParty: FangAddList.value
.map(aItem =>
warehouseData.value
.filter(bItem => bItem.value === aItem.businessName)
.map(match => match.label)
.join(',')
)
.join(','),
warehouseId: $route.query.warehouseId, // ID
workOrderId: $route.query.id, //
};
});
.filter(item => item.state === 0) // 0
.map(item => {
return {
indemnitor: item.name, //
reason: item.reason, //
money: Number(item.num), //
reasonArbitration: item.reason, //
workOrderId: $route.query.id, //
warehouseId: $route.query.warehouseId, // ID
};
});
DataSubmit['completionRecipientEntities'] = CompensationParty.value
.filter(item => item.state === 1) // 1
.map(item => {
return {
recipient: item.name, //
reasonReceivingPayment: item.reason, //
money: Number(item.num), //
workOrderNumber: $route.query.workOrderNumber, //
responsibleParty: FangAddList.value
.map(aItem =>
warehouseData.value
.filter(bItem => bItem.value === aItem.businessName)
.map(match => match.label)
.join(',')
)
.join(','),
warehouseId: $route.query.warehouseId, // ID
workOrderId: $route.query.id, //
};
});
//

191
src/views/distribution/signfor/distributionSignfortreat.vue

@ -38,30 +38,31 @@
<!-- <el-input v-model="query.querySigningStatus" placeholder="请选择签收状态"></el-input>-->
</el-form-item>
<el-form-item label="配送时间:">
<el-date-picker
v-model="query.taskTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
<el-date-picker
v-model="query.taskTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<el-form-item label="装车时间:">
<el-date-picker
v-model="query.loadingTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions">
</el-date-picker>
<el-date-picker
v-model="query.loadingTimeSection"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
</div>
<!-- <el-form-item label="顾客姓名:">-->
<!-- <el-input v-model="query.customerName" placeholder="请输入服务类型"></el-input>-->
@ -155,27 +156,48 @@
@selection="selectionsc"
>
<template #default="slotProps">
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
<el-text
size="small"
v-if="slotProps.scope.row.isHaveAbnormalPackage === 2"
@click="viewAbnormalLoading(slotProps.scope)"
> </el-text
<template
v-if="slotProps.scope.column.label === '配送件数' || '装车件数' || '司机签收数'"
>
<!-- v-if="
<el-text @click="InformationViewing(slotProps.scope)">
<!-- {{slotProps.scope.row.reservationNum}} -->
{{
slotProps.scope.column.label === '配送件数'
? slotProps.scope.row.reservationNum
: slotProps.scope.column.label === '装车件数'
? slotProps.scope.row.loadedNumber
: slotProps.scope.column.label === '司机签收数'
? slotProps.scope.row.receivedQuantity
: ''
}}
</el-text>
</template>
<template v-else-if="slotProps.scope.column.label === '操作'">
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
<el-text
size="small"
v-if="slotProps.scope.row.isHaveAbnormalPackage === 2"
@click="viewAbnormalLoading(slotProps.scope)"
> </el-text
>
<!-- v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
" -->
<el-text
v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
"
size="small"
@click="handleSign(slotProps.scope.row)"
> </el-text
>
<el-text
v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
"
size="small"
@click="handleSign(slotProps.scope.row)"
> </el-text
>
</template>
<!-- <el-button size="small" type="danger" @click="delectsolt(slotProps.scope)"-->
<!-- >Delete</el-button>-->
</template>
@ -533,31 +555,35 @@ export default {
SignForPhotos: [],
reservationId: null, //ID,
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
shortcuts: [
{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
},
},
{
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
},
},
{
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
},
},
],
},
columnList: [
{
@ -797,27 +823,18 @@ export default {
{
prop: 'reservationNum',
label: '配送件数',
type: 1,
type: 6,
values: '',
width: '130',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'loadedNumber',
label: '装车件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'unloadedNumber',
label: '未装车件数',
type: 1,
type: 6,
values: '',
width: '130',
checkarr: [],
@ -826,18 +843,8 @@ export default {
},
{
prop: 'receivedQuantity',
label: '签收件数',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'unreceivedQuantity',
label: '未签收件数',
type: 1,
label: '司机签收数',
type: 6,
values: '',
width: '130',
checkarr: [],
@ -1543,7 +1550,11 @@ export default {
console.log(uploadFile, uploadFiles);
console.log('执行了1回调');
},
//
InformationViewing(val) {
console.log(val, '点击数字接收的值');
console.log('12312312');
},
handlePictureCardPreview(uploadFile) {
console.log(uploadFile);
console.log('执行了2回调');
@ -1897,7 +1908,7 @@ export default {
this.search = !this.search;
},
searchChange() {
console.log("this.query>>>>>>>>>>>>>>",this.query);
console.log('this.query>>>>>>>>>>>>>>', this.query);
if (this.query.querySigningStatus) {
this.query.signingStatus = this.query.querySigningStatus;
}
@ -2181,6 +2192,6 @@ export default {
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
align-items: flex-end;
}
</style>

14
src/views/distribution/turndelivery/deliveryDiscuss.vue

@ -430,18 +430,11 @@
placeholder="请输入服务号"
/>
</el-form-item>
<el-form-item label="顾客姓名:">
<el-form-item label="运单收货人:">
<el-input
v-model="parameter.customerName"
clearable
placeholder="请输入顾客姓名"
/>
</el-form-item>
<el-form-item label="顾客电话:">
<el-input
v-model="parameter.customerTelephone"
clearable
placeholder="请输入顾客电话"
placeholder="请输入运单收货人"
/>
</el-form-item>
<el-form-item label="顾客地址:">
@ -451,6 +444,9 @@
placeholder="请输入顾客地址"
/>
</el-form-item>
<el-form-item >
</el-form-item>
</el-form>
<!-- <div class="SoBtn">
搜索菜单预留按钮

Loading…
Cancel
Save