Browse Source

客户添加字段信息,优化客服

dev-xx
马远东 12 months ago
parent
commit
18238e759b
  1. 8
      src/views/aftersales/aftersalesWorkOrder.vue
  2. 111
      src/views/aftersales/aftersalesWorkOrderend.vue
  3. 194
      src/views/aftersales/aftersalesWorkOrdermodify.vue
  4. 25
      src/views/basicdata/brand/basicClient.vue
  5. 8
      src/views/distribution/signfor/distributionSignforedt.vue
  6. 2
      vite.config.js

8
src/views/aftersales/aftersalesWorkOrder.vue

@ -27,7 +27,9 @@
<el-form-item label="订单自编号" class="el-times">
<el-input
type="text"
style="width: 500px"
type="textarea"
:rows="1"
v-model="query.orderCode"
placeholder="请输入订单自编号"
/>
@ -4709,6 +4711,10 @@ const AssignSubmission = () => {
}
}
:deep(.el_tims_box) {
.topText{
display: flex;
align-items: flex-start;
}
width: 100%;
display: flex;
.el-form-item {

111
src/views/aftersales/aftersalesWorkOrderend.vue

@ -731,25 +731,24 @@
</el-timeline>
</div>
<!-- 输入框 -->
</el-tab-pane>
<div class="inputMax" v-loading="Msgloadinga" element-loading-text="Loading...">
<div class="inputfell">
<div class="inputbtn">
<div class="inputleft">
<el-upload
ref="uploadRef"
class="upload-demo"
:action="doubledCount"
:headers="headers"
:on-success="fellSuccess"
>
<template #trigger>
<el-button type="primary" class="el-fil">上传附件</el-button>
<div class="felltis" v-if="KFfeel.length">上传成功</div>
</template>
</el-upload>
<!-- <el-select
<div class="inputMax" v-loading="Msgloadinga" element-loading-text="Loading...">
<div class="inputfell">
<div class="inputbtn">
<div class="inputleft">
<el-upload
ref="uploadRef"
class="upload-demo"
:action="doubledCount"
:headers="headers"
:on-success="fellSuccess"
>
<template #trigger>
<el-button type="primary" class="el-fil">上传附件</el-button>
<div class="felltis" v-if="KFfeel.length">上传成功</div>
</template>
</el-upload>
<!-- <el-select
v-model="separateMessageResponsibility"
multiple
filterable
@ -766,25 +765,53 @@
:disabled="item.disabled"
/>
</el-select> -->
</div>
<el-button type="primary" class="el_next" @click="NextRecord()">
下一条
</el-button>
</div>
<el-button type="primary" class="el_next" @click="NextRecord()">
下一条
</el-button>
</div>
<el-input
v-model="Msgtextarea"
:rows="5"
type="textarea"
placeholder="请输入要回复的内容"
@input="appoint(Msgtextarea)"
/>
<div class="msgHf">
<el-button type="primary" @click="replyMessage()"> 结束回复 </el-button>
<el-button type="primary" @click="replyMessage()"> 回复 </el-button>
<el-input
v-model="Msgtextarea"
:rows="5"
type="textarea"
placeholder="请输入要回复的内容"
@input="appoint(Msgtextarea)"
/>
<div class="msgHf">
<el-button type="primary" @click="replyMessage()"> 结束回复 </el-button>
<el-button type="primary" @click="replyMessage()"> 回复 </el-button>
</div>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="操作记录">
<div class="ovhe" :style="{ height: msgHight + 'px' }" ref="scrollContainer">
<el-timeline style="max-width: 600px">
<el-timeline-item timestamp="2018/4/12" placement="top">
<el-card>
<div>
<span>操作人</span> <h4>Update Github template</h4> </div>
<div> <span>操作事件</span> <p>Tom committed 2018/4/12 20:46</p></div>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="2018/4/3" placement="top">
<el-card>
<h4>Update Github template</h4>
<p>Tom committed 2018/4/3 20:46</p>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="2018/4/2" placement="top">
<el-card>
<h4>Update Github template</h4>
<p>Tom committed 2018/4/2 20:46</p>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</el-tab-pane>
</div>
<!-- <el-tab-pane label="菜单2"></el-tab-pane> -->
@ -2710,10 +2737,10 @@ const CustomerServiceCompleted = () => {
display: flex;
align-items: center;
}
.e_time{
color: #999;
font-size: 12px;
}
.e_time {
color: #999;
font-size: 12px;
}
.img {
width: 50px;
height: 50px;
@ -2936,9 +2963,9 @@ const CustomerServiceCompleted = () => {
justify-content: space-between;
}
:deep(.Transport_damage_photos){
.el-upload{
display: none;
}
:deep(.Transport_damage_photos) {
.el-upload {
display: none;
}
}
</style>

194
src/views/aftersales/aftersalesWorkOrdermodify.vue

@ -574,7 +574,6 @@
</el-form-item>
</div>
<div class="sk_input" v-if="item.state == 0">
<el-form-item label="责任人">
<el-input
@ -594,7 +593,7 @@
<!-- <el-input v-model="item.explains" placeholder="请填写说明" /> -->
</div>
<!-- <div class="sk_input" v-if="item.state == 1"> -->
<!-- <el-input v-model="item.explain" placeholder="请填写说明" /> -->
<!-- <el-input v-model="item.explain" placeholder="请填写说明" /> -->
<!-- </div> -->
<!-- v-if="RouterState != 'Infoedit'" -->
<div class="el_cwBtn" v-if="!CompleteDisabling">
@ -668,16 +667,19 @@
<div class="dialog-footer">
<!-- <el-button @click="Indexdialog = false">取消</el-button> -->
<el-button type="primary" @click="ConfirmForm" v-if="$route.query.EditInformation && UserPermissions=='仓库客服'">
<el-button
type="primary"
@click="ConfirmForm"
v-if="$route.query.EditInformation && UserPermissions == '仓库客服'"
>
编辑提交
</el-button>
<!--编辑提交-->
<el-button
type="primary"
@click="Arbitrationcompleted"
v-if="$route.query.CustomerServiceCompleted && UserPermissions !='仓库客服'"
v-if="$route.query.CustomerServiceCompleted && UserPermissions != '仓库客服'"
>
仲裁完结提交
</el-button>
@ -686,21 +688,16 @@
<el-button
type="primary"
@click="AppealEditor"
v-if="$route.query.AppealEstablished && UserPermissions !='仓库客服'"
v-if="$route.query.AppealEstablished && UserPermissions != '仓库客服'"
>
申诉成立编辑提交
</el-button>
<!-- 理赔金未出编辑 -->
<el-button
type="primary"
@click="UnpaidClaimsEdited"
v-if="$route.query.Resultediting"
>
<el-button type="primary" @click="UnpaidClaimsEdited" v-if="$route.query.Resultediting">
处理结果修改提交
</el-button>
<!--客服仲裁完结 -->
</div>
</el-card>
@ -815,6 +812,7 @@ import {
$_shippingInformation,
$_updateCompletionEnd,
$_addProcessingResults,
$_settlementUpdate,
} from '@/api/aftersales/aftersalesWorkOrder';
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import { AddressClosed } from '@/utils/util';
@ -850,7 +848,7 @@ const ShortageList = ref([]); //少货件数
const fleeingList = ref([]); //
const valueStrictly = ref();
const routerID = ref(null); //ID
const ProcessingProhibited= ref(true);//
const ProcessingProhibited = ref(true); //
const routerState = ref(''); //
const personResponsibleList = ref([]); //
const companyProportion = ref(100); //
@ -888,10 +886,10 @@ const CompletedEditing = ref(false); //完结编辑
const amplifyurl = ref(''); //
const amplifysrcList = ref([]); //
const ProcessingresultsState = ref(false); //
const CompleteDisabling=ref(true);//
const CompleteDisabling = ref(true); //
const ProcessedId = ref(null); //iD
const Copyprocessingresults = ref(); //
const UserPermissions=ref('');//
const UserPermissions = ref(''); //
// ref
//
@ -1083,58 +1081,57 @@ const onLoad = () => {
CompletedEditing.value = false;
}
//
if ($route.query.ProcessingresultsState && UserPermissions.value !='仓库客服' ) {
if ($route.query.ProcessingresultsState && UserPermissions.value != '仓库客服') {
console.log($route.query.Processingresults, '理赔金未出编辑');
ProcessingresultsState.value = false;
} else{
} else {
ProcessingresultsState.value = true;
}
//
if($route.query.CustomerServiceCompleted && UserPermissions.value !='仓库客服'){
if ($route.query.CustomerServiceCompleted && UserPermissions.value != '仓库客服') {
CompleteDisabling.value = false;
}else{
} else {
CompleteDisabling.value = true;
}
//
if($route.query.AppealEstablished){
CompleteDisabling.value=false;//
if ($route.query.AppealEstablished) {
CompleteDisabling.value = false; //
}
//
if($route.query.Resultediting){
ProcessingProhibited.value=false;//
}else{
ProcessingProhibited.value=true;//
if ($route.query.Resultediting) {
ProcessingProhibited.value = false; //
} else {
ProcessingProhibited.value = true; //
}
console.log(RouterState.value, '路由状态');
console.log(ProcessingresultsState.value,'当前状态');
console.log(ProcessingresultsState.value, '当前状态');
getDictionaryBiz('result_handling').then(res => {
console.log(res, '发现环节');
ProcessingResults.value = res.data.data;
console.log(ProcessingResults.value, '发现环节');
});
//
const Statistics = () => {
//
if (identifying.value == 1) {
Indexform.value.number = 0;
PackageInfo.value.map(res => {
if (res.packageCode) {
Indexform.value.number++;
}
});
} else {
//
Indexform.value.number = 0;
PackageInfo.value.map(res => {
console.log(res);
if (res.waybillNumber) {
Indexform.value.number++;
}
});
}
};
//
const Statistics = () => {
//
if (identifying.value == 1) {
Indexform.value.number = 0;
PackageInfo.value.map(res => {
if (res.packageCode) {
Indexform.value.number++;
}
});
} else {
//
Indexform.value.number = 0;
PackageInfo.value.map(res => {
console.log(res);
if (res.waybillNumber) {
Indexform.value.number++;
}
});
}
};
//
getDictionaryBiz('payment_method').then(res => {
//
@ -1148,14 +1145,13 @@ const Statistics = () => {
updateDictionary(DiscoveringNodes.value, 'pc_discovery_node'); //
handle(); //
getDictionaryBiz('after_sales_visits').then(res=>{
const matchingItem = res.data.data.find(
getDictionaryBiz('after_sales_visits').then(res => {
const matchingItem = res.data.data.find(
item => item.dictValue == JSON.parse(localStorage.getItem('TWMS-userInfo')).content.role_name
);
UserPermissions.value = matchingItem.dictValue
console.log(UserPermissions.value,'当前角色信息');
})
UserPermissions.value = matchingItem.dictValue;
console.log(UserPermissions.value, '当前角色信息');
});
$_getInfo({ id: $route.query.id }).then(res => {
groundlineType.value = res.data.data.discoveryNode; //
@ -1365,13 +1361,11 @@ const Statistics = () => {
item => item.value == Indexform.value.workOrderType
).value;
console.log(SelectType.value, '异常类型');
Statistics()
Statistics();
});
};
onLoad(); //
//
const abnormalChange = val => {
console.log(val, '异常事件类型');
@ -1539,8 +1533,8 @@ const changeProcessingResults = val => {
//
const PaymentSelection = val => {
if(ProcessingProhibited.value){
return
if (ProcessingProhibited.value) {
return;
}
console.log(val, '支付');
console.log(Paymentmethod.value);
@ -2016,9 +2010,9 @@ const ConfirmForm = () => {
};
//
const AppealEditor =()=>{
//
if ($route.query.AppealEstablished) {
const AppealEditor = () => {
//
if ($route.query.AppealEstablished) {
editloading.value = true; //
let data = {
completionRecipientEntities: [], //
@ -2069,7 +2063,7 @@ const AppealEditor =()=>{
.join(',')
)
.join(','),
warehouseId: item.warehouseId, //ID
warehouseId: item.warehouseId, //ID
workOrderId: $route.query.id, //
id: item.id,
};
@ -2095,13 +2089,13 @@ const AppealEditor =()=>{
.catch(res => {
editloading.value = false; //
});
console.log('申诉下面编辑完结信息');
console.log('申诉下面编辑完结信息');
return;
}
}
};
//
const UnpaidClaimsEdited=()=>{
const UnpaidClaimsEdited = () => {
if (ProcessingresultsState.value) {
//
//
@ -2118,21 +2112,19 @@ const UnpaidClaimsEdited=()=>{
},
};
//
if( Copyprocessingresults.value){
if (Copyprocessingresults.value) {
let missingObjects = Copyprocessingresults.value.filter(objA => {
let matchingObjects = ProcessingList.value.filter(
objB => objB.state === objA.state && objB.id === objA.id
);
return matchingObjects.length === 0;
});
if (missingObjects.length) {
console.log(missingObjects);
data.aftersalesProcessingResultsDTO['assignList'] = missingObjects.map(item => item.id);
}
let matchingObjects = ProcessingList.value.filter(
objB => objB.state === objA.state && objB.id === objA.id
);
return matchingObjects.length === 0;
});
if (missingObjects.length) {
console.log(missingObjects);
data.aftersalesProcessingResultsDTO['assignList'] = missingObjects.map(item => item.id);
}
}
data.aftersalesProcessingResultsDTO['processingMoneyEntityList'] = ProcessingList.value
.map(item => {
console.log(item);
@ -2188,24 +2180,50 @@ const UnpaidClaimsEdited=()=>{
type: 'success',
});
if (res.data.code == 200) {
$router.push({
path: '/aftersales/aftersalesWorkOrder',
});
AddressClosed('/aftersales/aftersalesWorkOrdermodify'); //
ElMessageBox.confirm('处理结果已修改成功?是否确认理赔金额', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
let data = {
id: $route.query.id,
workOrderStatus: 30,
};
$_settlementUpdate(data).then(res => {
if (res.data.code == 200) {
ElMessage({
message: res.data.msg,
type: 'success',
});
$router.push({
path: '/aftersales/aftersalesWorkOrder',
});
AddressClosed('/aftersales/aftersalesWorkOrdermodify'); //
}
});
})
.catch(() => {})
.finally(() => {
$router.push({
path: '/aftersales/aftersalesWorkOrder',
});
AddressClosed('/aftersales/aftersalesWorkOrdermodify'); //
});
}
})
.catch(error => {
ElMessage({
message: res.data.msg,
type: 'success',
type: 'warning',
});
});
console.log('理赔金额未出编辑');
return;
}
}
//
const Arbitrationcompleted=()=>{
};
//
const Arbitrationcompleted = () => {
let data = {
id: $route.query.id,
completionRecipientEntities: [], //
@ -2298,7 +2316,7 @@ const Arbitrationcompleted=()=>{
AddressClosed('/aftersales/aftersalesWorkOrdermodify'); ///
}
});
}
};
// const Arbitrationcompleted = () => {
// //
@ -2415,8 +2433,6 @@ const Arbitrationcompleted=()=>{
// }
// }
// data.aftersalesProcessingResultsDTO['processingMoneyEntityList'] = ProcessingList.value
// .map(item => {
// console.log(item);

25
src/views/basicdata/brand/basicClient.vue

@ -542,16 +542,39 @@ export default {
sortable: true,
head: false,
},
{
prop: 'linkman',
label: '联系人',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'typeServiceName',
label: '服务类型',
label: '配送类型',
type: 1,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: 'typeServiceName',
// label: '',
// type: 1,
// values: '',
// width: '130',
// checkarr: [],
// fixed: false,
// sortable: true,
// },
{
prop: 'bladeRegionProvinceId',
label: '地址',

8
src/views/distribution/signfor/distributionSignforedt.vue

@ -945,7 +945,7 @@ const menuData1 = ref([
},
{
prop: 'consigneeUnit',
label: '收单位',
label: '收单位',
type: 2,
values: '',
width: '150',
@ -978,7 +978,7 @@ const menuData1 = ref([
},
{
prop: 'consigneeMobile',
label: '运单收电话',
label: '运单收电话',
type: 2,
values: '',
width: '150',
@ -1000,7 +1000,7 @@ const menuData1 = ref([
},
{
prop: 'customerAddress',
label: '终端收地址',
label: '终端收地址',
type: 2,
values: '',
width: '400',
@ -1011,7 +1011,7 @@ const menuData1 = ref([
},
{
prop: 'customerTelephone',
label: '终端收电话',
label: '终端收电话',
type: 2,
values: '',
width: '200',

2
vite.config.js

@ -33,7 +33,7 @@ export default ({ mode, command }) => {
// target: 'http://192.168.10.29:13000',
// target: 'http://192.168.3.5:13000',//?
// target: 'http://h5uapi.huitongys.com',
target: 'http://test.api.huo5you.com',
target: 'http://test.api.huo5you.com',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, ''),
},

Loading…
Cancel
Save