Browse Source

修复客服已知bug

dev-xx
马远东 1 year ago
parent
commit
5939b6b87a
  1. 28
      src/option/aftersales/vueTvemp.js
  2. 32
      src/router/views/index.js
  3. 24
      src/utils/util.js
  4. 72
      src/views/aftersales/aftersalesWorkOrder.vue
  5. 33
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  6. 2
      src/views/distribution/deliverylist/distributionDeliveryListdis.vue
  7. 18
      src/views/distribution/inventory/distrilbutionBillLadingList.vue
  8. 3
      src/views/distribution/signdetail/packageNodeSearch.vue

28
src/option/aftersales/vueTvemp.js

@ -138,7 +138,7 @@ export const columnList = [
{ {
prop: 'totalAmount', prop: 'totalAmount',
label: '赔款金额', label: '赔款金额',
type: 2, type: 1,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -149,7 +149,7 @@ export const columnList = [
{ {
prop: 'entryTime', prop: 'entryTime',
label: '财务入账时间', label: '财务入账时间',
type: 2, type: 4,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -171,7 +171,7 @@ export const columnList = [
{ {
prop: 'deliverGoodsTime', prop: 'deliverGoodsTime',
label: '送货时间', label: '送货时间',
type: 2, type: 4,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -183,7 +183,7 @@ export const columnList = [
{ {
prop: 'discoveryTime', prop: 'discoveryTime',
label: '发现时间', label: '发现时间',
type: 2, type: 4,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -194,7 +194,7 @@ export const columnList = [
{ {
prop: 'warehousingTime', prop: 'warehousingTime',
label: '入库时间', label: '入库时间',
type: 2, type: 4,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -206,7 +206,7 @@ export const columnList = [
{ {
prop: 'deliveryTime', prop: 'deliveryTime',
label: '配送时间', label: '配送时间',
type: 2, type: 4,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -254,7 +254,7 @@ export const columnList = [
{ {
prop: 'overTime', prop: 'overTime',
label: '完结时间', label: '完结时间',
type: 2, type: 4,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -265,7 +265,7 @@ export const columnList = [
{ {
prop: 'problemDescription', prop: 'problemDescription',
label: '异常问题描述', label: '异常问题描述',
type: 2, type: 1,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -287,7 +287,7 @@ export const columnList = [
{ {
prop: 'processNumber', prop: 'processNumber',
label: '钉钉流程号', label: '钉钉流程号',
type: 2, type: 1,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -309,7 +309,7 @@ export const columnList = [
{ {
prop: 'auditTime', prop: 'auditTime',
label: '审核时间', label: '审核时间',
type: 2, type: 4,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -322,7 +322,7 @@ export const columnList = [
{ {
prop: 'remarks', prop: 'remarks',
label: '备注', label: '备注',
type: 2, type: 1,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -814,7 +814,7 @@ export const timeoutList = [
head: false, head: false,
}, },
{ {
prop: 'workOrderTypeName', prop: 'workOrderTypeNameS',
label: '异常类型', label: '异常类型',
type: 3, type: 3,
values: '', values: '',
@ -825,7 +825,7 @@ export const timeoutList = [
head: false, head: false,
}, },
{ {
prop: 'discoveryNodeName', prop: 'discoveryNodeNameS',
label: '发现节点名称', label: '发现节点名称',
type: 3, type: 3,
values: '', values: '',
@ -840,7 +840,7 @@ export const timeoutList = [
{ {
prop: 'money', prop: 'money',
label: '金额', label: '金额',
type: 2, type: 1,
values: '', values: '',
width: '130', width: '130',
checkarr: [], checkarr: [],

32
src/router/views/index.js

@ -1247,22 +1247,22 @@ export default [
], ],
}, },
{ // {
path: '/aftersales/aftersalesWorkOrder', // path: '/aftersales/aftersalesWorkOrder',
component: Layout, // component: Layout,
redirect: '/aftersales/aftersalesWorkOrder', // redirect: '/aftersales/aftersalesWorkOrder',
children: [ // children: [
{ // {
meta: { // meta: {
i18n: 'dict', // i18n: 'dict',
keepAlive: false, // keepAlive: false,
}, // },
path: '/aftersales/aftersalesWorkOrder', // path: '/aftersales/aftersalesWorkOrder',
name: '工单', // name: '工单',
component: () => import('@/views/aftersales/aftersalesWorkOrder.vue'), // component: () => import('@/views/aftersales/aftersalesWorkOrder.vue'),
}, // },
], // ],
}, // },
{ {
path: '/aftersales/aftersalesWorkOrderAdd', path: '/aftersales/aftersalesWorkOrderAdd',
component: Layout, component: Layout,

24
src/utils/util.js

@ -511,51 +511,35 @@ export const setNodeHeight = (_node, _height = '') => {
const updateDetailQuery = (index, propName, detailsQuery) => { const updateDetailQuery = (index, propName, detailsQuery) => {
if (index) { if (index) {
detailsQuery[propName] = index; // 设置属性值 detailsQuery[propName] = index; // 设置属性值
console.log(`Property set: ${propName} = ${index}`); } else {
} else {
if(detailsQuery.hasOwnProperty(propName)) { if(detailsQuery.hasOwnProperty(propName)) {
delete detailsQuery[propName]; // 确保删除属性 delete detailsQuery[propName]; // 确保删除属性
console.log(`Property deleted: ${propName}`);
} else { } else {
console.log(`Property to delete not found: ${propName}`);
} }
} }
}; };
// 处理 row 属性并更新 details.query // 处理 row 属性并更新 details.query
export const processRowProperty = (index, row, details) => { export const processRowProperty = (index, row, details) => {
console.log(`Processing: ${row.prop}`); console.log(`Processing: ${row.prop}`);
console.log(`Processing: ${row.prop}`);
console.log('Current details.query before processing:', details.query);
// 先前匹配和删除的代码 ...
console.log('Current details.query after processing:', details.query);
if (typeof row.prop === 'string') { if (typeof row.prop === 'string') {
const nameRegex = /([a-zA-Z0-9_]+)NameS$/; const nameRegex = /([a-zA-Z0-9_]+)NameS$/;
const match = row.prop.match(nameRegex); const match = row.prop.match(nameRegex);
if (match) { if (match) {
const basePropName = match[1]; const basePropName = match[1];
console.log(`Matched: ${basePropName}`);
const fullPropNameS = basePropName + 'NameS'; const fullPropNameS = basePropName + 'NameS';
console.log(`Full property name with 'NameS': ${fullPropNameS}`);
if (details.query.hasOwnProperty(fullPropNameS)) { if (details.query.hasOwnProperty(fullPropNameS)) {
delete details.query[fullPropNameS]; delete details.query[fullPropNameS];
console.log(`Property '${fullPropNameS}' deleted`);
} else { } else {
console.log(`Property '${fullPropNameS}' not found for deletion`);
} }
updateDetailQuery(index, basePropName, details.query); updateDetailQuery(index, basePropName, details.query);
} else { } else {
console.log(`No 'NameS' ending found for ${row.prop}`);
updateDetailQuery(index, row.prop, details.query); updateDetailQuery(index, row.prop, details.query);
} }
} else { } else {
console.log(`row.prop is not a string`);
} }
}; };

72
src/views/aftersales/aftersalesWorkOrder.vue

@ -14,16 +14,26 @@
<!-- 搜索模块 --> <!-- 搜索模块 -->
<el-row v-if="search"> <el-row v-if="search">
<!-- 查询模块 --> <!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d"> <el-form :inline="true" :model="topFrom" class="el-fr-d">
<div class="el_tims_box"> <div class="el_tims_box">
<div class="topText"> <div class="topText">
<el-form-item label="工单号" class="el-times"> <el-form-item label="工单号" class="el-times">
<el-input <el-input
type="text"
v-model="query.workOrderNumber" v-model="query.workOrderNumber"
:rows="4"
placeholder="请输入工单号" placeholder="请输入工单号"
/> />
</el-form-item> </el-form-item>
<el-form-item label="订单自编号" class="el-times">
<el-input
type="text"
v-model="query.workOrderNumber"
placeholder="请输入订单自编号"
/>
</el-form-item>
</div> </div>
<!-- <div class="el_times"> <!-- <div class="el_times">
@ -502,7 +512,6 @@
v-model="dialogBatchcompletion" v-model="dialogBatchcompletion"
title="批量完结" title="批量完结"
width="60%" width="60%"
:before-close="handleClose"
:style="{ height: BatchcompletionHeight + 'px', overflowY: 'scroll' }" :style="{ height: BatchcompletionHeight + 'px', overflowY: 'scroll' }"
class="el_Batchcompletion" class="el_Batchcompletion"
> >
@ -1219,16 +1228,16 @@ const AppealeditorState = ref(false); //申诉是否为编辑状态(默认否)
const AppealStatusT = ref(false); // const AppealStatusT = ref(false); //
const loadingCustomer = ref(false); // const loadingCustomer = ref(false); //
const TabList = ref([ const TabList = ref([
{ name: 0, label: '全部', state: true, request: true }, { name: 0, label: '全部', state: true, request: true,DataList:[]},
{ name: 3, label: '待处理', state: true, request: true }, { name: 3, label: '待处理', state: true, request: true,DataList:[]},
{ name: 9, label: '待审核', state: true, request: true }, { name: 9, label: '待审核', state: true, request: true,DataList:[]},
{ name: 8, label: '待回复', state: false, request: true }, { name: 8, label: '待回复', state: false, request: true ,DataList:[]},
{ name: 1, label: '处理中', state: true, request: true }, { name: 1, label: '处理中', state: true, request: true ,DataList:[]},
{ name: 2, label: '处理完毕', state: true, request: true }, { name: 2, label: '处理完毕', state: true, request: true ,DataList:[]},
{ name: 6, label: '仲裁中', state: true, request: true }, { name: 6, label: '仲裁中', state: true, request: true ,DataList:[]},
{ name: 5, label: '客服介入', state: true, request: true }, { name: 5, label: '客服介入', state: true, request: true ,DataList:[]},
{ name: 4, label: '理赔金额未出', state: true, request: true }, { name: 4, label: '理赔金额未出', state: true, request: true ,DataList:[]},
{ name: 7, label: '超时未处理', state: true, request: true }, { name: 7, label: '超时未处理', state: true, request: true ,DataList:[]},
]); // ]); //
const DeliveryDriver = ref([]); const DeliveryDriver = ref([]);
@ -1782,6 +1791,8 @@ const IndexTable = val => {
page.value.total = res.data.data.total; // page.value.total = res.data.data.total; //
if (res.data.data.records.length) { if (res.data.data.records.length) {
Statusprocessing(res.data.data.records); Statusprocessing(res.data.data.records);
TabList.value.find(res=>res.name == TabPermissions.value).DataList = res.data.data.records
console.log(TabList.value,'当前存储的值');
details.data = res.data.data.records; details.data = res.data.data.records;
} else { } else {
// details.data = res.data.data.records; // details.data = res.data.data.records;
@ -2559,6 +2570,11 @@ const searchChangeS = () => {
// IndexTable(); // // IndexTable(); //
tabChenge(TabPermissions.value); tabChenge(TabPermissions.value);
}; };
//
const WorkorderChange=(val)=>{
console.log(val);
}
// //
const searchReset = () => { const searchReset = () => {
details.query = {}; details.query = {};
@ -2567,6 +2583,13 @@ const searchReset = () => {
}; };
/** 表格表头时间选择 */ /** 表格表头时间选择 */
const timesc = (index, row) => { const timesc = (index, row) => {
processRowProperty(index, row, details);
details.query[row.prop] = index;
DataRendering(TabPermissions.value, details.query);
return
console.log(index, row); console.log(index, row);
if (!!index) { if (!!index) {
index = dayjs(index).format('YYYY-MM-DD'); index = dayjs(index).format('YYYY-MM-DD');
@ -2584,6 +2607,7 @@ const btnsc = val => {
/** 表格表头下拉框选择 */ /** 表格表头下拉框选择 */
const selectsc = (index, row) => { const selectsc = (index, row) => {
console.log(row,'下拉参数');
processRowProperty(index, row, details); processRowProperty(index, row, details);
details.query[row.prop] = index; details.query[row.prop] = index;
DataRendering(TabPermissions.value, details.query); DataRendering(TabPermissions.value, details.query);
@ -2806,8 +2830,8 @@ const appealFn = val => {
ClaimStatus.value = false; // ClaimStatus.value = false; //
AppealList[5].checkarr = []; // AppealList[5].checkarr = []; //
AppealList[6].checkarr = []; // AppealList[6].checkarr = []; //
Antidictionary('pc_work_order', AppealList[5]); updateDictionary(AppealList[5].checkarr, 'pc_work_order'); //
Antidictionary('pc_discovery_node', AppealList[6]); updateDictionary(AppealList[6].checkarr, 'pc_discovery_node'); //
console.log('当前是申诉列表'); console.log('当前是申诉列表');
let data = { let data = {
current: details.page.currentPage, current: details.page.currentPage,
@ -2926,14 +2950,15 @@ const TimeoutHandling = val => {
AppealStatus.value = false; // AppealStatus.value = false; //
TimeoutStatus.value = true; // TimeoutStatus.value = true; //
details.loadingObj.list = true; // details.loadingObj.list = true; //
Antidictionary('pc_work_order', timeoutList[3]); updateDictionary(timeoutList[3].checkarr, 'pc_work_order'); //
Antidictionary('pc_discovery_node', timeoutList[4]); updateDictionary(timeoutList[4].checkarr, 'pc_discovery_node'); //
let data = { let data = {
current: details.page.currentPage, current: details.page.currentPage,
size: details.page.pageSize, size: details.page.pageSize,
...val, ...val,
}; };
$_listOwn(data).then(res => { $_listOwn(data).then(res => {
Statusprocessing(res.data.data.records)
details.loadingObj.list = false; // details.loadingObj.list = false; //
console.log(res, '超时记录'); console.log(res, '超时记录');
details.data = res.data.data.records; details.data = res.data.data.records;
@ -3048,7 +3073,7 @@ const DataRendering = (val, input) => {
details.query.workOrderStatus = null; details.query.workOrderStatus = null;
ArbitrationStatus.value = false; // ArbitrationStatus.value = false; //
Tableheaderswitching(timeoutList); // Tableheaderswitching(timeoutList); //
TimeoutHandling(); // TimeoutHandling(data); //
} else if (val == 8) { } else if (val == 8) {
// //
if (UserPermissions.value == '仓库客服') { if (UserPermissions.value == '仓库客服') {
@ -4586,14 +4611,21 @@ const AssignSubmission = () => {
height: 30px !important; height: 30px !important;
} }
} }
.el_tims_box { :deep(.el_tims_box) {
display: flex; display: flex;
.el-form-item {
margin: 6px 0;
}
} }
.el-fr-d { .el-fr-d {
margin: 6px 0px; margin: 6px 0px;
width: 100%;
display: flex;
justify-content: space-between;
} }
.el-btn { .el-btn {
width: 100%; margin-right: 0;
margin-bottom: 0;
} }
:deep(.el-card) { :deep(.el-card) {
box-shadow: none; box-shadow: none;

33
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -151,12 +151,33 @@
groundlineType == 3 || groundlineType == 5 || groundlineType == 7 || groundlineType == 6 groundlineType == 3 || groundlineType == 5 || groundlineType == 7 || groundlineType == 6
" "
> >
<el-input <!-- <el-input
v-model="Indexform.trainNumber" v-model="Indexform.trainNumber"
placeholder="请输入车次号(干线卸车环节)" placeholder="请输入车次号"
clearable clearable
@change="DeliveryTrainnumber"
/> /> -->
<el-select
v-model="Indexform.trainNumber"
filterable
allow-create
default-first-option
:reserve-keyword="false"
placeholder="请选择车次号"
@change="DeliveryTrainnumber"
>
<el-option
v-for="item in TrainnumberList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
@ -641,6 +662,8 @@ const dialogImageUrl = ref(null); //图片
const dialogVisible = ref(null); // const dialogVisible = ref(null); //
const groundlineSet = ref(true); //线 const groundlineSet = ref(true); //线
const TotalClaimAmount = ref(0); // const TotalClaimAmount = ref(0); //
const TrainnumberList=ref([]);//
const TrainnumberMax=ref([]);//
const groundlineType = ref(null); //线 const groundlineType = ref(null); //线
const Inputbox = ref(true); // const Inputbox = ref(true); //
const ShortageState = ref(false); // const ShortageState = ref(false); //
@ -898,6 +921,8 @@ const DiscoveringNodesChange = val => {
// //
function DeliveryTrainnumber() { function DeliveryTrainnumber() {
console.log(Indexform.value.trainNumber,'车次号');
if (!Indexform.value.trainNumber && !Indexform.value.deliveryTime) { if (!Indexform.value.trainNumber && !Indexform.value.deliveryTime) {
Indexform.value.deliveryTime = null; Indexform.value.deliveryTime = null;
Indexform.value.deliveryDriver = ''; Indexform.value.deliveryDriver = '';

2
src/views/distribution/deliverylist/distributionDeliveryListdis.vue

@ -963,7 +963,7 @@ export default {
} }
ElMessageBox.confirm( ElMessageBox.confirm(
'是否取消配送?', '是否取消配送?',
'Warning', '提示',
{ {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',

18
src/views/distribution/inventory/distrilbutionBillLadingList.vue

@ -257,7 +257,7 @@ import { getDictionaryBiz } from '@/api/system/dict';
import { getToken } from '@/utils/auth'; import { getToken } from '@/utils/auth';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { downloadXls } from '@/utils/util'; import { downloadXls } from '@/utils/util';
import { ElMessage, ElMessageBox } from 'element-plus'
export default { export default {
data() { data() {
return { return {
@ -883,6 +883,16 @@ export default {
this.$message.warning('请选择至少一条数据'); this.$message.warning('请选择至少一条数据');
return; return;
} }
ElMessageBox.confirm(
'是否取消该任务?',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
// //
let data={ let data={
billLodingIds:'' billLodingIds:''
@ -897,6 +907,12 @@ export default {
}).finally(()=>{ }).finally(()=>{
this.loading=false;// this.loading=false;//
}) })
})
.catch(() => {
})
}, },
// //
handleSign(row, num) { handleSign(row, num) {

3
src/views/distribution/signdetail/packageNodeSearch.vue

@ -19,6 +19,9 @@
<el-form-item :label="title + ':'"> <el-form-item :label="title + ':'">
<el-input v-model="query.packageCode" :placeholder="'请输入' + title"></el-input> <el-input v-model="query.packageCode" :placeholder="'请输入' + title"></el-input>
</el-form-item> </el-form-item>
<el-form-item>
</el-form-item>
</div> </div>
<!-- 查询按钮 --> <!-- 查询按钮 -->
<el-form-item class="el-btn"> <el-form-item class="el-btn">

Loading…
Cancel
Save