qb 5 months ago
parent
commit
877edfd7a9
  1. 5
      src/components/Tableexportcomponent/Tableexportcomponent.vue
  2. 12
      src/option/aftersales/vueTvemp.js
  3. 2
      src/views/aftersales/aftersalesWorkOrder.vue
  4. 60
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  5. 10
      src/views/aftersales/aftersalesWorkOrderInfo.vue
  6. 197
      src/views/aftersales/aftersalesWorkOrderend.vue

5
src/components/Tableexportcomponent/Tableexportcomponent.vue

@ -56,6 +56,9 @@ removeColumn('复选框');
const exportFileName = ref('');
//
const checkedColumns = ref([]);
const initializeCheckedColumns = () => {
checkedColumns.value = transferData.value.map(item => item.key);
};
// el-transfer
const transferData = computed(() => {
@ -69,7 +72,7 @@ const transferData = computed(() => {
return [];
}
});
initializeCheckedColumns();
// el-transfer props
const transferProps = {
key: 'key',

12
src/option/aftersales/vueTvemp.js

@ -317,7 +317,17 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'createTime',
label: '录入时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'remarks',

2
src/views/aftersales/aftersalesWorkOrder.vue

@ -1816,6 +1816,8 @@ const IndexTable = (val, Refresh) => {
} else {
TabList.value.find(res => res.name == '9').state = false;
}
}else{
TabList.value.find(res => res.name == '9').state = false;
}
console.log(UserPermissions.value, '当前角色权限');
let data = {

60
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -807,41 +807,41 @@ const form = ref({
const myData = ref({}); //
const ruleForm = reactive({
basis: {
workOrderType: [{ required: true, message: '请选择异常类型', trigger: ['bulr', 'change'] }],
discoveryNode: [{ required: true, message: '请选择发现节点', trigger: ['bulr', 'change'] }],
trainNumber: [{ required: true, message: '请选择车次号', trigger: ['bulr', 'change'] }],
deliveryTime: [{ required: true, message: '请输入配送时间', trigger: ['bulr', 'change'] }],
deliveryDriver: [{ required: true, message: '请输入配送司机', trigger: ['bulr', 'change'] }],
vehicleRoute: [{ required: true, message: '请输入车辆线路', trigger: ['bulr', 'change'] }],
deliverGoodsTime: [{ required: true, message: '请输入发货时间', trigger: ['bulr', 'change'] }],
warehousingTime: [{ required: true, message: '请选择入库时间', trigger: ['bulr', 'change'] }],
discoveryTime: [{ required: true, message: '请选择发现时间', trigger: ['bulr', 'change'] }],
waybillMall: [{ required: true, message: '请输入运单商场', trigger: ['bulr'] }],
typeServiceName: [{ required: false, message: '请输入合作模式', trigger: ['bulr', 'change'] }],
workOrderType: [{ required: true, message: '请选择异常类型', trigger: ['blur', 'change'] }],
discoveryNode: [{ required: true, message: '请选择发现节点', trigger: ['blur', 'change'] }],
trainNumber: [{ required: true, message: '请选择车次号', trigger: ['blur', 'change'] }],
deliveryTime: [{ required: true, message: '请输入配送时间', trigger: ['blur', 'change'] }],
deliveryDriver: [{ required: true, message: '请输入配送司机', trigger: ['blur', 'change'] }],
vehicleRoute: [{ required: true, message: '请输入车辆线路', trigger: ['blur', 'change'] }],
deliverGoodsTime: [{ required: true, message: '请输入发货时间', trigger: ['blur', 'change'] }],
warehousingTime: [{ required: true, message: '请选择入库时间', trigger: ['blur', 'change'] }],
discoveryTime: [{ required: true, message: '请选择发现时间', trigger: ['blur', 'change'] }],
waybillMall: [{ required: true, message: '请输入运单商场', trigger: ['blur'] }],
typeServiceName: [{ required: false, message: '请输入合作模式', trigger: ['blur', 'change'] }],
investigationProcess: [
{ required: true, message: '请输入调查经过', trigger: ['bulr', 'change'] },
{ required: true, message: '请输入调查经过', trigger: ['blur', 'change'] },
],
result: [{ required: false, message: '请输选择处理结果', trigger: ['bulr'] }],
processor: [{ required: true, message: '请选择处理方', trigger: ['bulr'] }],
processorEntityList: [{ required: true, message: '请选择责任方', trigger: ['bulr'] }],
result: [{ required: false, message: '请输选择处理结果', trigger: ['blur'] }],
processor: [{ required: true, message: '请选择处理方', trigger: ['blur'] }],
processorEntityList: [{ required: true, message: '请选择责任方', trigger: ['blur'] }],
},
packageCode: [{ required: true, message: '请输入包条码', trigger: ['bulr', 'change'] }],
waybillNumber: [{ required: true, message: '请输入运单号', trigger: ['bulr', 'change'] }],
orderCode: [{ required: true, message: '请输入订单自编号', trigger: ['bulr', 'change'] }],
first: [{ required: false, message: '请输入一级品', trigger: ['bulr', 'change'] }],
secondary: [{ required: false, message: '请输入二级品', trigger: ['bulr', 'change'] }],
brandName: [{ required: false, message: '请输入品牌', trigger: ['bulr', 'change'] }],
businessId: [{ required: true, message: '请选择责任方', trigger: ['bulr', 'change'] }],
personResponsibleId: [{ required: true, message: '请输入责任人', trigger: ['bulr', 'change'] }],
responsibilityRatio: [{ required: false, message: '请输入占比', trigger: ['bulr', 'change'] }],
tripartite: [{ required: false, message: '请输入三方责任人', trigger: ['bulr', 'change'] }],
description: [{ required: true, message: '请输入说明', trigger: ['bulr', 'change'] }],
money: [{ required: true, message: '请输入金额', trigger: ['bulr', 'change'] }],
paymentUnit: [{ required: false, message: '请输入支付单位', trigger: ['bulr', 'change'] }],
packageCode: [{ required: true, message: '请输入包条码', trigger: ['blur', 'change'] }],
waybillNumber: [{ required: true, message: '请输入运单号', trigger: ['blur', 'change'] }],
orderCode: [{ required: true, message: '请输入订单自编号', trigger: ['blur', 'change'] }],
first: [{ required: false, message: '请输入一级品', trigger: ['blur', 'change'] }],
secondary: [{ required: false, message: '请输入二级品', trigger: ['blur', 'change'] }],
brandName: [{ required: false, message: '请输入品牌', trigger: ['blur', 'change'] }],
businessId: [{ required: true, message: '请选择责任方', trigger: ['blur', 'change'] }],
personResponsibleId: [{ required: true, message: '请输入责任人', trigger: ['blur', 'change'] }],
responsibilityRatio: [{ required: false, message: '请输入占比', trigger: ['blur', 'change'] }],
tripartite: [{ required: false, message: '请输入三方责任人', trigger: ['blur', 'change'] }],
description: [{ required: true, message: '请输入说明', trigger: ['blur', 'change'] }],
money: [{ required: true, message: '请输入金额', trigger: ['blur', 'change'] }],
paymentUnit: [{ required: false, message: '请输入支付单位', trigger: ['blur', 'change'] }],
compensationTime: [
{ required: false, message: '请选择理赔支付时间', trigger: ['bulr', 'change'] },
{ required: false, message: '请选择理赔支付时间', trigger: ['blur', 'change'] },
],
compensationMethod: [{ required: false, message: '请选择支付方式', trigger: ['bulr', 'change'] }],
compensationMethod: [{ required: false, message: '请选择支付方式', trigger: ['blur', 'change'] }],
});
const ResponsibleParty = ref([]); //
const ruleFormRef = ref(); //

10
src/views/aftersales/aftersalesWorkOrderInfo.vue

@ -567,6 +567,9 @@
<el-button type="primary" v-if="PermissionButton.Processing_results" @click="addingRecord"
>处理结果
</el-button>
<el-button type="primary" v-if="PermissionButton.Processing_resultsSub" @click="addingRecord"
>处理结果提交
</el-button>
<!-- <el-button type="primary" v-if="PermissionButton.Confirm_review" @click="ConfirmReview"
>确定审核
</el-button> -->
@ -1336,6 +1339,12 @@ const isProcessingResults = () => {
}
return false;
};
const isProcessingResultssub=()=>{
if (workOrderStatus == '90') {
return true;
}
return false;
}
//
const isWorkOrderCompletion = () => {
@ -1438,6 +1447,7 @@ const Appealrejection = () => {
const PermissionButton = computed(() => ({
reply: true, //
Processing_results: isProcessingResults(), //
Processing_resultsSub: isProcessingResultssub(), //
work_order_completion: isWorkOrderCompletion(), //
repulse: isRepulse(), //
result_returned: Resultreturned(), //

197
src/views/aftersales/aftersalesWorkOrderend.vue

@ -7,7 +7,7 @@
<el-tab-pane label="零担信息" :name="2"></el-tab-pane>
</el-tabs>
<el-form :model="endFrom">
<el-form :model="endFrom" :rules="ruleForm" ref="ruleFormRef">
<div class="el_top">
<el-form-item label="异常类型" class="el_inputTop">
<el-select v-model="endFrom.workOrderType" disabled style="width: 240px">
@ -445,11 +445,13 @@
<span>{{ PayeeNum }}</span>
</div>
</div>
<div class="payanindemnity" v-for="(item, index) in CompensationParty" :key="index">
<div style="display: flex">
<el-form-item
:class="{ payanindemnity_title: item.state == 0 }"
:class="{
payanindemnity_title: item.state == 0,
payanindemnity_titlecheck: item.warehouseIdcheck,
}"
:label="item.state == 0 ? '赔款方' : '受款方'"
>
<el-select
@ -457,6 +459,7 @@
v-model="item.warehouseId"
filterable
placeholder="请选择仓库"
@change="warehouseChange(item, index)"
>
<el-option
v-for="item in warehouseData"
@ -475,8 +478,18 @@
/>
</el-form-item>
<el-form-item label="原 . 因">
<el-input v-model="item.reason" placeholder="请填写原因" />
<el-form-item
label="原 . 因"
:class="{
payanindemnity_reason: item.state == 0,
payanindemnity_reasoncheck: item.reasoncheck,
}"
>
<el-input
v-model="item.reason"
placeholder="请填写原因"
@blur="reasonChange(item, index)"
/>
</el-form-item>
<el-form-item label="金额(元)">
@ -520,7 +533,13 @@
<!-- 仲裁原因说明 -->
<div class="arbitrate" v-if="routerState == 'end'">
<el-tabs type="border-card" class="demo-tabs">
<el-tabs
type="border-card"
:class="{
'Reason_arbitration_tip': ReasonarbClass,
'demo-tabs Reason_arbitration': true,
}"
>
<el-tab-pane>
<template #label>
<span class="custom-tabs-label">
@ -623,10 +642,10 @@
>处理结果修改保存</el-button
>
<el-button
type="primary"
v-if="PermissionButton.information_editing"
@click="EditInformation"
>修改内部责任划分</el-button
type="primary"
v-if="PermissionButton.information_editing"
@click="EditInformation"
>修改内部责任划分</el-button
>
<!-- <el-button
@click="DetermineStorage"
@ -939,6 +958,7 @@ const HistoricalPackageList = ref([]); //历史包件数组
const dialogHistoricalPackage = ref(false); //
const HistoricalPackageinput = ref(''); //
const UserPermissions = ref(''); //
const ReasonarbClass = ref(false);
const accountingLodading = ref(false); //
const accountingValue = ref(''); //
const accountingID = ref(); //id
@ -953,6 +973,18 @@ const Pageloading = ref(false); //页面加载load
const TotalClaimAmount = ref(0); //
const TotalamountReceived = ref(0); //
const userInfo = ref({}); //
const ruleForm = reactive({
reason: [{ required: true, message: '请填写原因', trigger: ['blur', 'change'] }],
warehouseId: [{ required: true, message: '请选择仓库', trigger: ['blur', 'change'] }],
});
const getRuleswarehouse = item => {
return item.state == 0 ? ruleForm.warehouseId : [];
};
const getRulesreason = item => {
// item.state
return item.state == 0 ? ruleForm.reason : [];
};
const PackageInfo = ref([
//
{ packageCode: '', orderCode: '', waybillNumber: '' },
@ -984,9 +1016,7 @@ const videoUrl = ref(null); //视频预览
const VideoPreviewStatus = ref(false); //
const Paymentmethodoptions = ref([]); //
const warehouseData = ref([]); //
const getClass = computed(item => {
return item.state === 0 ? 'class-for-state-0' : 'class-for-other-state';
});
const MessageContent = ref([]);
const CompensationParty = ref([
{
@ -998,6 +1028,8 @@ const CompensationParty = ref([
warehouseId: '',
compensationPersonnel: '',
button: false,
warehouseIdcheck: false, //
reasoncheck: false, //
}, //
// explains: ''
{
@ -1111,6 +1143,7 @@ const details = reactive({
const TransportChange = val => {
console.log(val, '运损触发事件');
};
const warehouseIdState = ref(false); //
//
async function updateDictionary(targetArray, dictionaryType) {
@ -1147,7 +1180,7 @@ const Saveresults = () => {
};
//
const Processingresultmodification = () => {
if (['90','21'].includes($route.query.workOrderStatus)) {
if (['90', '21'].includes($route.query.workOrderStatus)) {
return true;
}
};
@ -1185,7 +1218,7 @@ const PermissionButton = computed(() => ({
Arbitration_completed: Arbitrationcompleted(), //
Processing_result_modification: Processingresultmodification(), //
Processing_result_disabled: Processingresultdisabled(), //
information_editing:isInformationEditing(), //
information_editing: isInformationEditing(), //
}));
//
@ -1202,7 +1235,7 @@ const onLoad = async () => {
}); //
//
getDictionaryBiz('after_sales_visits')
.then( async res => {
.then(async res => {
console.log(res, '角色字典');
//
const roleNames = JSON.parse(localStorage.getItem('TWMS-userInfo')).content.role_name.split(
@ -1231,11 +1264,11 @@ const onLoad = async () => {
endFrom.value.processor = [];
endFrom.value.packageImage = [];
if (res.data.data.createUser == userInfo.content.user_id) {
//
warehouseIdState.value = true;
} else {
warehouseIdState.value = false;
}
//
warehouseIdState.value = true;
} else {
warehouseIdState.value = false;
}
//
if (res.data.data.discoveryNode == '1') {
groundlineType.value = '1';
@ -1663,6 +1696,8 @@ const AddCompensation = () => {
num: 0, //
compensationPersonnel: '', //
button: true, //
warehouseIdcheck: false,
reasoncheck: false,
};
CompensationParty.value.splice(
CompensationParty.value.map(item => item.state).lastIndexOf(0) + 1,
@ -1968,22 +2003,56 @@ const submitresults = async value => {
console.log(error, 'error');
});
};
const warehouseChange = (item, index) => {
if (item.warehouseId) {
item.warehouseIdcheck = false;
}
};
const reasonChange = (item, index) => {
if (item.reasoncheck) {
item.reasoncheck = false;
}
};
// ()
const submitCompletion = () => {
console.log(CompensationParty.value, '完结填写的参数');
// state:0
// state:1
let _warehouseId = CompensationParty.value
.filter(item => item.state === 0)
.find(res => !res.warehouseId);
if (_warehouseId) {
const submitCompletion = async () => {
console.log(CompensationParty.value, 'CompensationParty');
let _flag = CompensationParty.value.filter(item => item.state == 0);
console.log(_flag, '_flag');
_flag.forEach(item => {
if (!item.warehouseId) {
item.warehouseIdcheck = true;
}
if (!item.reason) {
item.reasoncheck = true;
}
});
let _result = _flag.every(item => item.warehouseId && item.reason);
console.log(_result, '_result');
if (!endFrom.value.arbitrate) {
ReasonarbClass.value = true;
} else {
ReasonarbClass.value = false;
}
if (!_result || !endFrom.value.arbitrate) {
ElMessage({
message: `有赔款方未选择仓库`,
message: '完结信息必填项未填写完整!',
type: 'warning',
});
return;
}
// state:0
// state:1
// let _warehouseId = CompensationParty.value
// .filter(item => item.state === 0)
// .find(res => !res.warehouseId);
// if (_warehouseId) {
// ElMessage({
// message: ``,
// type: 'warning',
// });
// return;
// }
ElMessageBox.confirm('是否提交完结信息?', '完结', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -2465,6 +2534,60 @@ const CustomerServiceCompleted = () => {
:deep(.el-form-item) {
margin-right: 8px;
}
.payanindemnity_title::before {
content: '*';
color: #f00;
margin-top: 4px;
position: absolute;
left: 4px;
}
.payanindemnity_reason {
position: relative;
}
.payanindemnity_reason::before {
content: '*';
color: #f00;
margin-right: 6px;
margin-top: 4px;
position: absolute;
left: -7px;
}
:deep(.payanindemnity_titlecheck) {
.el-select__wrapper {
border: 1px solid #f00;
border-radius: 2px;
box-shadow: none !important;
}
.el-select__wrapper::before {
content: '请选择仓库';
color: #f00;
position: absolute;
bottom: -19px;
font-size: 11px;
font-family: '黑体';
left: 0;
}
.is-focused {
box-shadow: none !important;
border: 1px solid #f00;
}
}
:deep(.payanindemnity_reasoncheck) {
position: relative;
.el-input__wrapper {
border: 1px solid #f00;
box-shadow: none !important;
}
.el-input__wrapper::before {
content: '请填写原因';
color: #f00;
position: absolute;
bottom: -25px;
font-size: 11px;
font-family: '黑体';
left: 0;
}
}
}
.arbitrate {
width: 100%;
@ -3051,4 +3174,16 @@ const CustomerServiceCompleted = () => {
}
}
}
:deep(.Reason_arbitration) {
.el-tabs__item::before {
content: '*';
color: #f00;
}
}
:deep(.Reason_arbitration_tip) {
.el-textarea__inner {
box-shadow: none;
border: 1px solid #f00;
}
}
</style>

Loading…
Cancel
Save