Browse Source

修改客服已知bug,价格新增功能

dev-xx
马远东 11 months ago
parent
commit
799c35f45c
  1. 2
      src/api/aftersales/aftersalesWorkOrder.js
  2. 17
      src/api/financialsector/index.js
  3. 79
      src/option/Pricesystem/index.js
  4. 2
      src/router/views/index.js
  5. 175
      src/views/Pricesystem/ListOfPriceSystems.vue
  6. 12
      src/views/Pricesystem/Price/PriceBill.vue
  7. 2
      src/views/Pricesystem/Price/PriceDelivery.vue
  8. 10
      src/views/Pricesystem/Price/PriceTrunkLine.vue
  9. 2
      src/views/Pricesystem/Price/PriceWarehousing.vue
  10. 145
      src/views/aftersales/aftersalesWorkOrder.vue
  11. 154
      src/views/aftersales/aftersalesWorkOrderAdd.vue
  12. 131
      src/views/aftersales/aftersalesWorkOrderInfo.vue
  13. 50
      src/views/aftersales/aftersalesWorkOrderend.vue
  14. 2
      src/views/aftersales/aftersalesWorkOrdermodify.vue
  15. 100
      src/views/aftersales/aftersalesWorkOrdermodifyTemp.vue
  16. 5
      src/views/distribution/deliverylist/distributionDeliveryListedt.vue
  17. 2
      src/views/distribution/inventory/distrilbutionBillLadingView.vue
  18. 2
      src/views/distribution/signfor/distributionSignforedt.vue

2
src/api/aftersales/aftersalesWorkOrder.js

@ -217,7 +217,7 @@ export const $_getBusinessDepartmentUser = (params) => {
// 回复调查接口
export const $_savaSurveyRecord = (data) => {
return request({
url: '/api/logpm-aftersales/aftersalesWorkOrder/savaSurveyRecord ',
url: '/api/logpm-aftersales/aftersalesWorkOrder/savaSurveyRecord',
method: 'post',
data
})

17
src/api/financialsector/index.js

@ -51,6 +51,14 @@ export const $_InfopriceTemplate = params => {
method: 'get',
});
};
// 删除带生效
export const $_DELETEID = params => {
return request({
url: '/api/logpm-basicdata/basicdataPrice/' + params.id,
method: 'DELETE',
});
};
// 菜单临时删除模
export const $_tempDelpriceTemplate = params => {
@ -72,3 +80,12 @@ export const $_getexport= params => {
responseType: 'blob',
});
};
// 历史版本查询
export const $_gethisPage = params => {
return request({
url: '/api/logpm-basicdata/basicdataPrice/hisPage',
method: 'get',
params,
});
};

79
src/option/Pricesystem/index.js

@ -102,6 +102,85 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'createUserName',
label: '操作',
type: 6,
values: '',
width: '300',
checkarr: [],
fixed: 'right',
sortable: false,
},
];
export const HistoricalList = [
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'clientName',
label: '客户名称',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'brandName',
label: '品牌',
type: 1,
values: '',
width: '80',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'effectiveStatus',
label: '状态',
type: 1,
values: '',
width: '80',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'effectiveTime',
label: '生效时间',
type: 1,
values: '',
width: '90',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'expiryTime',
label: '过期时间',
type: 1,
values: '',
width: '90',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'createUserName',
label: '操作',

2
src/router/views/index.js

@ -1379,7 +1379,7 @@ export default [
{
meta: {
i18n: 'dict',
keepAlive: false,
keepAlive: true,
},
path: '/aftersales/aftersalesWorkOrderAdd',
name: '工单新增',

175
src/views/Pricesystem/ListOfPriceSystems.vue

@ -19,7 +19,10 @@
<el-icon><Download /></el-icon></el-button
>
<el-button type="primary" @click="ImportTemplate">
<el-icon><Download /></el-icon></el-button
<el-icon><Upload /></el-icon></el-button
>
<el-button type="primary" @click="addition">
<el-icon><Plus /></el-icon></el-button
>
</div>
<!-- 头部右侧按钮模块 -->
@ -47,12 +50,15 @@
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '操作'">
<div class="ElBtnClass">
<el-button @click="handleClient(slotProps.scope.row)">基础配置</el-button>
<el-button v-if="slotProps.scope.row.id" @click="handleClient(slotProps.scope.row)">基础配置</el-button>
<el-button
v-if="slotProps.scope.row.maintenanceStatus === '已维护'"
@click="Modifytemplate(slotProps.scope.row)"
>价格体系配置</el-button
>
<el-button @click="Historicalversion(slotProps.scope.row)">历史版本</el-button>
<el-button v-if="slotProps.scope.row.id" @click="Viewdetails(slotProps.scope.row)">查看详情</el-button>
</div>
</template>
</template>
@ -89,10 +95,10 @@
>
<el-form inline :model="details.form" ref="basicForm" label-width="120px">
<el-form-item label="客户名称" prop="clientName">
<el-input placeholder="客户名称" v-model="details.form.clientName" />
<el-input placeholder="客户名称" v-model="details.form.clientName" disabled/>
</el-form-item>
<el-form-item label="品牌" prop="brandName">
<el-input placeholder="品牌" v-model="details.form.brandName" />
<el-input placeholder="品牌" v-model="details.form.brandName" disabled/>
</el-form-item>
<el-form-item
label="生效时间"
@ -153,7 +159,7 @@
<el-upload
class="upload-demo"
drag
action="/api/logpm-basicdata/basicdataPrice/upload"
action="/api/logpm-basicdata/basicdataPrice/upload/v2"
:headers="headers"
:on-success="handleSuccess"
:before-upload="beforeAvatarUpload"
@ -173,6 +179,30 @@
</div>
</template>
</el-dialog>
<!-- 历史版本 -->
<el-dialog v-model="Historical.popUpShow" title="历史版本" >
<tablecmt
class="Historical"
:columnList="Historical.columnList"
:tableData="Historical.data"
:loading="Historical.loading"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '操作'">
<div class="ElBtnClass">
<el-button v-if="slotProps.scope.row.effectiveStatus !== '已失效'" @click="handleClient(slotProps.scope.row)">基础配置</el-button>
<el-button
v-if="slotProps.scope.row.effectiveStatus !== '已失效'"
@click="Modifytemplate(slotProps.scope.row)"
>价格体系配置</el-button
>
<el-button v-if="slotProps.scope.row.effectiveStatus == '待生效'" @click="deletetails(slotProps.scope.row)">删除</el-button>
<el-button @click="Viewdetails(slotProps.scope.row)">查看详情</el-button>
</div>
</template>
</template>
</tablecmt>
</el-dialog>
<div id="createdDiv"></div>
<!-- 列表配置显示 -->
<edittablehead
@ -186,11 +216,13 @@
<script setup>
import { ref, reactive, toRefs, computed, onMounted, nextTick, watch, onActivated } from 'vue';
import { columnList } from '@/option/Pricesystem/index.js';
import { columnList,HistoricalList} from '@/option/Pricesystem/index.js';
import {
$_getpriceTemplate,
$_deletelpriceTemplate,
$_getexport,
$_gethisPage,
$_DELETEID,
} from '@/api/financialsector/index'; //
import { getBasicdataPrice, postBasicdataPrice } from '@/api/Pricesystem/index'; //
import { getDictionaryBiz } from '@/api/system/dict'; //
@ -202,10 +234,17 @@ import { popmsg } from '@/utils/poptxt';
import { downloadXls, deepClone } from '@/utils/util';
import { useStore } from 'vuex';
import dayjs from 'dayjs';
import error from '@/error';
const $router = useRouter(); //
const $useStore = useStore(); //
const $route = useRoute(); //
const dialogTemp = ref(false);
const Historical=reactive({
popUpShow:false,//
data:[],//
loading:false,//
columnList:deepClone(HistoricalList),
})
const details = reactive({
/** 是否开启搜索 */
search: false,
@ -524,7 +563,6 @@ const Deletetemplate = () => {
const Modifytemplate = row => {
console.log(row);
$useStore.commit('DEL_ONCE_TAG', '/Pricesystem/PricesyHome');
$router.push({
query: {
id: row.id,
@ -533,7 +571,79 @@ const Modifytemplate = row => {
path: '/Pricesystem/PricesyHome',
});
};
//
const Viewdetails=(row)=>{
$useStore.commit('DEL_ONCE_TAG', '/Pricesystem/PricesyHome');
$router.push({
query: {
id: row.id,
templateId: row.templateId,
Viewdetails:false,
},
path: '/Pricesystem/PricesyHome',
});
}
const HistoriBt=ref({});//
//
const Historicalversion=(row)=>{
HistoriBt.value=row
Historical.popUpShow=true
Historical.loading=true
let _data={
id:row.id,
brandId:row.brandId,
clientId:row.clientId,
}
$_gethisPage(_data).then(res=>{
console.log(res);
if(res.data.code == 200){
Historical.data = res.data.data.records||[]
const _node = document.querySelector('.Historical');
setNodeHeight(_node, '', true);
}
}).catch(error=>{
console.log(error,'error');
}).finally(()=>{
Historical.loading=false
})
}
//
const deletetails=(row)=>{
let data={
id:row.id
}
const message = `是否删除该数据,<span style="color: red;">删除后不可恢复</span>是否确认?`;
ElMessageBox.confirm(
message,
'提示',
{
dangerouslyUseHTMLString: true, // HTML
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
Historical.loading=true
$_DELETEID(data).then(res=>{
console.log(res);
if(res.data.code ==200){
ElMessage({
message:res.data.msg,
type:'success'
})
Historicalversion(row)
}
}).catch(error=>{
console.log(error,'error');
}).finally(()=>{
Historical.loading=false
})
})
.catch(() => {
})
}
/** 设置客户 */
const handleClient = async row => {
try {
@ -550,7 +660,7 @@ const handleClient = async row => {
await nextTick();
//
basicForm.value.resetFields();
add.value=true
details.form = { ...row };
} catch (error) {
console.log('error :>> ', error);
@ -559,23 +669,61 @@ const handleClient = async row => {
}
console.log('row :>> ', row);
};
const add=ref(true)
//
const addition=async()=>{
if(!details.selectionList.length){
ElMessage({
message: '请勾选一条数据',
type: 'warning',
})
return
}
if(details.selectionList.length>1){
ElMessage({
message: '只能勾选单条数据操作',
type: 'warning',
})
return
}
console.log(details.selectionList,'details.selectionList');
let _row=details.selectionList[0]
console.log(_row,'_row');
details.loadingObj.pageLoading = true;
const res = await $_getpriceTemplate({ brandId: _row.brandId });
details.loadingObj.pageLoading = false;
const { code, data } = res.data;
if (code == 200) {
details.templateArr = data.records || [];
details.popUpShow.basicVisted = true;
await nextTick();
//
basicForm.value.resetFields();
details.form = { ..._row };
details.form.templateId=null
details.form.expiryTime=null
details.form.effectiveTime=null
};
add.value=false
}
/** 提交设置基础配置 */
const handleSubmitBasic = () => {
basicForm.value.validate(async (valid, fields) => {
if (!valid) return;
try {
details.loadingObj.pageLoading = true;
details.popUpShow.basicVisted = false;
const submitData = {
effectiveTime: details.form.effectiveTime + ' 00:00:00',
id: details.form.id,
brandId:details.form.brandId,
clientId:details.form.clientId,
expiryTime: details.form.expiryTime + ' 00:00:00',
templateId: details.form.templateId,
};
if(add.value){
submitData.id=details.form.id;
}
const res = await postBasicdataPrice(submitData);
const { code, msg } = res.data;
@ -583,6 +731,7 @@ const handleSubmitBasic = () => {
ElMessage.success(msg);
onLoad();
Historicalversion(HistoriBt.value)
} catch (error) {
console.log('error :>> ', error);
} finally {

12
src/views/Pricesystem/Price/PriceBill.vue

@ -73,7 +73,7 @@
/>
</td>
<!-- 新增 && 删除 -->
<td>
<td v-if="!$route.query.Viewdetails">
<el-button
v-if="index === 0"
@click="() => handlePlusVehicle(index)"
@ -204,7 +204,7 @@
</template>
<!-- 操作按钮 -->
<div class="flex-c-c">
<div class="flex-c-c" v-if="!$route.query.Viewdetails">
<el-button type="primary" icon="Refresh" @click="resetFormData">重置</el-button>
<el-button type="primary" icon="Position" @click="handleSubmit">保存</el-button>
</div>
@ -215,7 +215,7 @@
<div class="flex-c-sb">
<el-divider content-position="left">提货路径</el-divider>
<el-button icon="CirclePlus" class="ml10" type="primary" @click="handleAdd">
<el-button icon="CirclePlus" class="ml10" type="primary" @click="handleAdd" v-if="!$route.query.Viewdetails">
</el-button>
</div>
@ -228,7 +228,7 @@
:loading="details.loadingObj.list"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '操作'">
<template v-if="slotProps.scope.column.label === '操作' && !$route.query.Viewdetails">
<el-text class="button" @click="() => handleEdit(slotProps.scope)"
><el-icon>
<CirclePlus />
@ -382,7 +382,7 @@
:min="0"
/>
</td>
<td>
<td v-if="!$route.query.Viewdetails">
<el-button
v-if="index === 0"
@click="() => handlePlusVehicle(index)"
@ -511,7 +511,7 @@
</el-form>
</template>
<div slot="footer" class="dialog-footer mt10">
<div slot="footer" class="dialog-footer mt10" v-if="!$route.query.Viewdetails">
<el-button icon="CircleClose" @click="details.popUpShow.addVsitied = false"> </el-button>
<el-button type="primary" icon="Position" @click="handleSubmitLine"> </el-button>
</div>

2
src/views/Pricesystem/Price/PriceDelivery.vue

@ -427,7 +427,7 @@
</div>
</el-form>
<!-- 操作按钮 -->
<div class="flex-c-c">
<div class="flex-c-c" v-if="!$route.query.Viewdetails">
<el-button type="primary" icon="Refresh" @click="resetFormData">重置</el-button>
<el-button type="primary" icon="Position" @click="handleSubmit">保存</el-button>
</div>

10
src/views/Pricesystem/Price/PriceTrunkLine.vue

@ -210,7 +210,7 @@
</template>
<!-- 操作按钮 -->
<div class="flex-c-c">
<div class="flex-c-c" v-if="!$route.query.Viewdetails">
<el-button type="primary" icon="Refresh" @click="resetFormData">重置</el-button>
<el-button type="primary" icon="Position" @click="handleSubmit">保存</el-button>
</div>
@ -221,7 +221,7 @@
<div class="flex-c-sb">
<el-divider content-position="left">干线路径</el-divider>
<el-button icon="CirclePlus" class="ml10" type="primary" @click="handleAdd">
<el-button icon="CirclePlus" class="ml10" type="primary" @click="handleAdd" v-if="!$route.query.Viewdetails">
</el-button>
</div>
@ -234,7 +234,7 @@
:loading="details.loadingObj.list"
>
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '操作'">
<template v-if="slotProps.scope.column.label === '操作' && !$route.query.Viewdetails">
<el-text class="button" @click="() => handleEdit(slotProps.scope)"
><el-icon>
<CirclePlus />
@ -388,7 +388,7 @@
:min="0"
/>
</td>
<td>
<td v-if="!$route.query.Viewdetails">
<el-button
v-if="index === 0"
@click="() => handlePlusVehicle(index)"
@ -522,7 +522,7 @@
</el-form>
</template>
<div slot="footer" class="dialog-footer mt10">
<div slot="footer" class="dialog-footer mt10" v-if="!$route.query.Viewdetails">
<el-button icon="CircleClose" @click="details.popUpShow.addVsitied = false"> </el-button>
<el-button type="primary" icon="Position" @click="handleSubmitLine"> </el-button>
</div>

2
src/views/Pricesystem/Price/PriceWarehousing.vue

@ -132,7 +132,7 @@
</div>
</el-form>
<!-- 操作按钮 -->
<div class="flex-c-c">
<div class="flex-c-c" v-if="!$route.query.Viewdetails">
<el-button type="primary" icon="Refresh" @click="resetFormData">重置</el-button>
<el-button type="primary" icon="Position" @click="handleSubmit">保存</el-button>
</div>

145
src/views/aftersales/aftersalesWorkOrder.vue

@ -168,12 +168,12 @@
@click="Batchcompletion"
>批量完结</el-button
>
<!-- 仲裁中确定结束仲裁按钮 -->
<!-- 完结确定结束完结按钮 -->
<el-button
type="primary"
v-if="ButtonPermissions.ArbitrationDetermination"
@click="AllEndArbitration"
>批量仲裁完成</el-button
>批量完结完成</el-button
>
<!-- <el-button
@ -211,7 +211,7 @@
@tab-change="AppealTab"
v-model="arbitrationTemp"
>
<el-tab-pane :name="0" label="仲裁中"></el-tab-pane>
<el-tab-pane :name="0" label="完结"></el-tab-pane>
<el-tab-pane :name="1" label="申诉列表"></el-tab-pane>
</el-tabs>
<!-- 首页表格 -->
@ -273,7 +273,7 @@
>结果确定</el-button
>
<!-- 仲裁中确定结束仲裁按钮 -->
<!-- 完结确定结束完结按钮 -->
<el-button
v-if="TabPermissions == '5' && UserPermissions != '仓库客服'"
@click="EndArbitration(slotProps.scope)"
@ -612,14 +612,14 @@
</el-tab-pane>
</el-tabs>
</div>
<!-- 仲裁原因 -->
<!-- 完结原因 -->
<div class="arbitrate">
<el-tabs type="border-card" class="demo-tabs">
<el-tab-pane>
<template #label>
<span class="custom-tabs-label">
<el-icon><calendar /></el-icon>
<span>仲裁原因</span>
<span>完结原因</span>
</span>
</template>
@ -627,7 +627,7 @@
v-model="Reasonarbitration"
type="textarea"
:autosize="{ minRows: 5, maxRows: 4 }"
placeholder="请输入仲裁原因"
placeholder="请输入完结原因"
/>
</el-tab-pane>
</el-tabs>
@ -1068,6 +1068,7 @@ import {
nextTick,
watch,
getCurrentInstance,
onActivated,
} from 'vue';
import {
columnList,
@ -1089,6 +1090,7 @@ const $route = useRoute();
/** vuex */
const customerData = ref([]); //
const pageLoad=ref(false)
console.log($useStore,'$useStore');
const accessControl = $useStore.getters.permission;
console.log(accessControl, '权限按钮');
const loadingFinancial = ref(false);
@ -1110,14 +1112,14 @@ const scChange = val => {
// workAdd;//
// batch_return;//
// assign;//
// apply_arbitration;//
// apply_arbitration;//
// batch_completion;//
// representations;//
// reply;//
// processing_completed;//
// work_order_completion;//
// repulse;//
// arbitration_completed;//
// arbitration_completed;//
// information_editing;//
console.log(accessControl.workAdd, '新增按钮权限');
// const PermissionButton = computed(() => {
@ -1125,14 +1127,14 @@ console.log(accessControl.workAdd, '新增按钮权限');
// workAdd: accessControl.workAdd, //
// batch_return: accessControl.batch_return, //
// assign: accessControl.assign, //
// apply_arbitration: accessControl.apply_arbitration, //
// apply_arbitration: accessControl.apply_arbitration, //
// batch_completion: accessControl.batch_completion, //
// representations: accessControl.representations, //
// reply: accessControl.reply, //
// processing_completed: accessControl.processing_completed, //
// work_order_completion: accessControl.work_order_completion, //
// repulse: accessControl.repulse, //
// arbitration_completed: accessControl.arbitration_completed, //
// arbitration_completed: accessControl.arbitration_completed, //
// information_editing: accessControl.information_editing, //
// };
// });
@ -1142,14 +1144,14 @@ const PermissionButton = computed(() => {
workAdd: accessControl.workAdd, //
batch_return: accessControl.batch_return, //
assign: accessControl.assign, //
apply_arbitration: accessControl.apply_arbitration, //
apply_arbitration: accessControl.apply_arbitration, //
batch_completion: accessControl.batch_completion, //
representations: accessControl.representations, //
reply: accessControl.reply, //
processing_completed: accessControl.processing_completed, //
work_order_completion: accessControl.work_order_completion, //
repulse: accessControl.repulse, //
arbitration_completed: accessControl.arbitration_completed, //
arbitration_completed: accessControl.arbitration_completed, //
information_editing: accessControl.information_editing, //
};
});
@ -1219,7 +1221,7 @@ const eightyPercentHeight = ref(0); // 80% 高度
const list = ref([]);
const options = ref([]);
const arbitrationTemp = ref(0); //
const arbitrationTemp = ref(0); //
const CustomerData = ref([]); //
const repulse = ref(false);
const dialogBatchcompletion = ref(false); //
@ -1230,10 +1232,10 @@ const AssignCustomerservice = ref([]); //工单指派客服列表
const iconState = ref(false); //
const ProcessingPartyState = ref(false); //()
const currentUser = ref(null); //Id
const ArbitrationStatus = ref(null); //
const ArbitrationStatus = ref(null); //
const TotalamountCompensation = ref(0); //
const TotalamountReceived = ref(0); //
const Reasonarbitration = ref(null); //
const Reasonarbitration = ref(null); //
const BatchcompletionHeight = ref(0); //
const userInfo = ref(); //
const ClaimStatus = ref(false); //
@ -1249,16 +1251,17 @@ const TabList = ref([
{ name: 0, label: '全部', state: true, request: true, DataList: [], total: '' },
{ name: 8, label: '待回复', state: false, request: true, DataList: [], total: '' },
{ name: 3, label: '待处理(新建)', state: true, request: true, DataList: [], total: '' },
{ name: 9, label: '待审核', state: true, request: true, DataList: [], total: '' },
{ name: 1, label: '处理中', state: true, request: true, DataList: [], total: '' },
{ name: 4, label: '理赔金额未出', state: true, request: true, DataList: [], total: '' },
{ name: 2, label: '处理完毕', state: true, request: true, DataList: [], total: '' },
{ name: 6, label: '仲裁中', state: true, request: true, DataList: [], total: '' },
{ name: 5, label: '客服介入', state: true, request: true, DataList: [], total: '' },
{ name: 4, label: '理赔金额未出', state: true, request: true, DataList: [], total: '' },
{ name: 6, label: '完结', state: true, request: true, DataList: [], total: '' },
{ name: 9, label: '待审核', state: true, request: true, DataList: [], total: '' },
{ name: 7, label: '超时未处理', state: true, request: true, DataList: [], total: '' },
]); //
const DeliveryDriver = ref([]);
const DeliveryDriver = ref([]);
const CompensationParty = ref([
{ name: '', state: 0, num: null, reason: '', cld: 1, warehouseId: '', personResponsibleName: '' }, //
{ name: '', state: 1, num: null, reason: '', cld: 1, warehouseId: '', personResponsibleName: '' }, //
@ -1370,13 +1373,13 @@ const {
// { label: '', value: 2 },
// { label: '', value: 3 },
// { label: '', value: 4 },
// { label: '', value: 5 },
// { label: '', value: 5 },
// { label: '', value: 6 },
// { label: '', value: 7 },
// ];
// //
// // 1. 2. 3. 4. 5. 6.
// // 1. 2. 3. 4. 5. 6.
// //
// // 1.
@ -1387,7 +1390,7 @@ const {
// 1.
// 2.
// 3.
// 4.
// 4.
// 5.
// 6.
@ -1395,7 +1398,7 @@ const {
// 1.
// 2.
// 3.
// 4.
// 4.
// 5.
// 6.
// // value==2
@ -1405,7 +1408,7 @@ const {
// 1.
// 2.
// 3.
// 4.
// 4.
// 5.
// 6.
@ -1413,7 +1416,7 @@ const {
// 1.
// 2.
// 3.
// 4.
// 4.
// 5.
// 6.
@ -1421,7 +1424,7 @@ const {
// 1.
// 2.
// 3.
// 4.
// 4.
// 5.
// 6.
@ -1429,7 +1432,7 @@ const {
// 1.
// 2.
// 3.
// 4.
// 4.
// 5.
// 6.
@ -1437,7 +1440,7 @@ const {
// 1.
// 2.
// 3.
// 4.
// 4.
// 5.
// 6.
@ -1468,7 +1471,7 @@ const ButtonPermissions = computed(() => {
batchFinish: false, //
appeal: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: UserPermissions.value != '仓库客服', //
export_Report: true, //
@ -1485,7 +1488,7 @@ const ButtonPermissions = computed(() => {
Batchdetermination: UserPermissions.value != '仓库客服', //
appeal: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: true, //
@ -1502,7 +1505,7 @@ const ButtonPermissions = computed(() => {
appeal: UserPermissions.value == '仓库客服' && AppealStatusT.value, //
Batchdetermination: UserPermissions.value == '仓库客服', //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: true, //
@ -1519,7 +1522,7 @@ const ButtonPermissions = computed(() => {
Batchdetermination: false, //
DingTalkNumber: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: true, //
@ -1536,7 +1539,7 @@ const ButtonPermissions = computed(() => {
DingTalkNumber: false, //
Batchdetermination: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: true, //
@ -1553,7 +1556,7 @@ const ButtonPermissions = computed(() => {
DingTalkNumber: false, //
Batchdetermination: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: UserPermissions.value != '仓库客服', //
ArbitrationDetermination: UserPermissions.value != '仓库客服', //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: true, //
@ -1570,7 +1573,7 @@ const ButtonPermissions = computed(() => {
appeal: UserPermissions.value == '仓库客服', //
Batchdetermination: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: true && !AppealStatusT.value, //
defaultassignments: false, //
export_Report: true, //
@ -1586,7 +1589,7 @@ const ButtonPermissions = computed(() => {
appeal: false, //
Batchdetermination: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: false, //
@ -1602,7 +1605,7 @@ const ButtonPermissions = computed(() => {
appeal: false, //
Batchdetermination: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: false, //
@ -1618,7 +1621,7 @@ const ButtonPermissions = computed(() => {
appeal: false, //
Batchdetermination: false, //
ManagerConfirmed: UserPermissions.value == '总部客服经理', //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: true, //
@ -1635,7 +1638,7 @@ const ButtonPermissions = computed(() => {
appeal: false,
Batchdetermination: false, //
ManagerConfirmed: false, //
ArbitrationDetermination: false, //
ArbitrationDetermination: false, //
Financial_accounting: false, //
defaultassignments: false, //
export_Report: false, //
@ -1737,7 +1740,7 @@ const Statusprocessing = val => {
} else if (item.workOrderStatus == 60) {
item.workOrderStatusNameS = columnList[10].checkarr[3].label; //
} else if (item.workOrderStatus == 70) {
item.workOrderStatusNameS = columnList[10].checkarr[6].label; //
item.workOrderStatusNameS = columnList[10].checkarr[6].label; //
} else if (item.workOrderStatus == 80) {
item.workOrderStatusNameS = columnList[10].checkarr[7].label; //
} else if (item.workOrderStatus == 90) {
@ -1894,6 +1897,22 @@ const OnLoad = () => {
};
OnLoad();
//
watch(() => route.path, (newPath, oldPath) => {
if ($useStore.state.isRefresh.refreshObj.aftersalesWorkOrder) {
//
OnLoad();
$useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: false });
}
});
// onActivated(() => {
// console.log('');
// if ($useStore.state.isRefresh.refreshObj.aftersalesWorkOrder) {
// //
// OnLoad();
// $useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: false });
// }
// });
//
function updateDictionary(targetArray, dictionaryType) {
getDictionaryBiz(dictionaryType).then(res => {
@ -2498,7 +2517,7 @@ const Appealbutton = state => {
loadingappeal.value = false; //
console.log(res, '功返回值');
ProcessingPartyState.value = false; //
ArbitrationStatus.value = false; //
ArbitrationStatus.value = false; //
AppealeditorState.value = false; //
appealData.value = {}; //
if (AppealStatusT.value) {
@ -2836,7 +2855,7 @@ const appealFn = val => {
//
const AppealTab = val => {
console.log(val, '仲裁中当前列表');
console.log(val, '完结当前列表');
arbitrationTemp.value = val;
if (val == 0) {
@ -2846,7 +2865,7 @@ const AppealTab = val => {
console.log('处理完毕');
ProcessingPartyState.value = false; //
details.query.workOrderStatus = 80;
ArbitrationStatus.value = false; //
ArbitrationStatus.value = false; //
// empty(); //
let data = {
...details.query,
@ -2996,7 +3015,7 @@ const DataRendering = (val, input, Refresh) => {
if (val == 0) {
ProcessingPartyState.value = false; //
ArbitrationStatus.value = true; //
ArbitrationStatus.value = true; //
if (UserPermissions.value == '仓库客服') {
//
data.workOrderStatus = 1000;
@ -3019,7 +3038,7 @@ const DataRendering = (val, input, Refresh) => {
details.query.workOrderStatus = 40;
}
ProcessingPartyState.value = false; //
ArbitrationStatus.value = true; //
ArbitrationStatus.value = true; //
Tableheaderswitching(columnList);
IndexTable(data, Refresh);
} else if (val == 2) {
@ -3027,7 +3046,7 @@ const DataRendering = (val, input, Refresh) => {
data.workOrderStatus = 30;
details.query.workOrderStatus = 30;
ProcessingPartyState.value = false; //
ArbitrationStatus.value = false; //
ArbitrationStatus.value = false; //
Tableheaderswitching(columnList);
IndexTable(data, Refresh);
} else if (val == 3) {
@ -3043,14 +3062,14 @@ const DataRendering = (val, input, Refresh) => {
data.workOrderStatus = 10;
details.query.workOrderStatus = 10;
ArbitrationStatus.value = true; //
ArbitrationStatus.value = true; //
Tableheaderswitching(columnList);
IndexTable(data, Refresh);
} else if (val == 4) {
//
ProcessingPartyState.value = false; //
details.query.workOrderStatus = null;
ArbitrationStatus.value = false; //
ArbitrationStatus.value = false; //
Tableheaderswitching(Claimsfield); //
settlementclaim(data, Refresh);
} else if (val == 5) {
@ -3058,7 +3077,7 @@ const DataRendering = (val, input, Refresh) => {
ProcessingPartyState.value = false; //
data.workOrderStatus = 70;
details.query.workOrderStatus = 70;
ArbitrationStatus.value = false; //
ArbitrationStatus.value = false; //
IndexTable(data, Refresh);
} else if (val == 6 && AppealStatusT.value) {
@ -3075,7 +3094,7 @@ const DataRendering = (val, input, Refresh) => {
ProcessingPartyState.value = false; //
data.workOrderStatus = 80;
details.query.workOrderStatus = 80;
ArbitrationStatus.value = false; //
ArbitrationStatus.value = false; //
Tableheaderswitching(columnList); //
IndexTable(data, Refresh);
var bodyContent = document.querySelectorAll('.maboxhi');
@ -3089,7 +3108,7 @@ const DataRendering = (val, input, Refresh) => {
ProcessingPartyState.value = false; //
data.workOrderStatus = null;
details.query.workOrderStatus = null;
ArbitrationStatus.value = false; //
ArbitrationStatus.value = false; //
Tableheaderswitching(timeoutList); //
TimeoutHandling(data, Refresh); //
} else if (val == 8) {
@ -3108,7 +3127,7 @@ const DataRendering = (val, input, Refresh) => {
data.workOrderStatus = 500;
details.query.workOrderStatus = 500;
}
ArbitrationStatus.value = true; //
ArbitrationStatus.value = true; //
Tableheaderswitching(columnList);
IndexTable(data, Refresh);
}
@ -3362,7 +3381,7 @@ const DetermineStorage = val => {
console.log(data, '处理好的值');
};
//
//
const EndArbitration = val => {
console.log(val, '当前参数');
let data = {
@ -3389,7 +3408,7 @@ const EndArbitration = val => {
pageLoad.value=false
});
};
//
//
const AllEndArbitration = () => {
//
if (!details.selectionList.length) {
@ -3402,8 +3421,8 @@ const AllEndArbitration = () => {
let data = {
assignList: [],
};
data['assignList'] = details.selectionList.map(res => res.id); //ID
console.log('批量仲裁确定处理好的值');
data['assignList'] = details.selectionList.map(res => res.id); //ID
console.log('批量完结确定处理好的值');
$_updateArbitrateStatu(data)
.then(res => {
console.log(res, '处理成功');
@ -3696,12 +3715,12 @@ const Assignbutton = () => {
dialogassign.value = false; //
});
};
//
//
const arbitrate = () => {
if (!details.selectionList.length) {
console.log('当前没有数据');
ElMessage({
message: '请勾要仲裁的数据',
message: '请勾要完结的数据',
type: 'warning',
});
return;
@ -3711,7 +3730,7 @@ const arbitrate = () => {
); //
if (!resultState) {
ElMessage({
message: '勾选数据不符合(待处理或处理中才可以申请仲裁)',
message: '勾选数据不符合(待处理或处理中才可以申请完结)',
type: 'warning',
});
return;
@ -3729,12 +3748,12 @@ const CustomerServiceintervention = () => {
data['assignList'].push(item.id);
});
console.log(data, '仲裁处理好的参数');
console.log(data, '完结处理好的参数');
loadingCustomer.value = true; //
//
$_arbitrate(data)
.then(res => {
console.log(res, '仲裁成功返回值');
console.log(res, '完结成功返回值');
// PagerefreshPublic();
DataRendering(TabPermissions.value, details.query, true);
if (res.data.code == 200) {
@ -3937,7 +3956,7 @@ const CompletedSubmission = () => {
// }
if (!Reasonarbitration.value) {
ElMessage({
message: '请填写仲裁原因',
message: '请填写完结原因',
type: 'warning',
});
return;

154
src/views/aftersales/aftersalesWorkOrderAdd.vue

@ -31,6 +31,7 @@
placeholder="请选择异常类型"
style="width: 100%"
clearable
@change="workOrderTypeChange"
>
<el-option
v-for="item in Exceptionoptions"
@ -85,7 +86,7 @@
>
<el-input
@change="ChangePackageInfo(item)"
v-model="item.packageCode"
v-model.trim="item.packageCode"
placeholder="请输入包条码"
clearable
/>
@ -326,6 +327,32 @@
clearable
/>
</el-form-item>
<!-- 干线卸车 -->
<el-form-item
label="责任方"
class="el_Processing"
prop="basis.processorEntityList"
v-if="displaySettings.processorEntityList"
style="width: 18%"
>
<el-select
v-model="form.basis.processorEntityList"
placeholder="请选择责任方"
style="width: 100% !important"
multiple
filterable
clearable
>
<el-option
v-for="item in Responsibleline"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<!-- 初始必填 -->
<div class="el_Basic">
<el-form-item
@ -350,6 +377,7 @@
/>
</el-select>
</el-form-item>
<!-- 初始必填 -->
<el-form-item
label="调查经过"
@ -640,11 +668,17 @@
:headers="headers"
:on-success="ImgSuccess"
:before-upload="beforeAvatarUpload"
:on-preview="Imgpreview"
drag
multiple
list-type="picture-card"
>
<el-icon><Plus /></el-icon>
<!-- 图片预览 -->
<el-dialog v-model="form.dialogVisible">
<img w-full :src="form.url" />
</el-dialog>
</el-upload>
</el-tab-pane>
</el-form-item>
@ -684,13 +718,16 @@
</template> -->
</el-dialog>
</template>
<script>
export default {
name: '/aftersales/aftersalesWorkOrderAdd',
};
</script>
<script setup>
import { ref, reactive, computed } from 'vue';
import { ref, reactive, computed, onActivated } from 'vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import { getDictionaryBiz } from '@/api/system/dict'; //
import { useStore } from 'vuex';
const $store = useStore();
import {
$_getList,
$_submit,
@ -704,8 +741,8 @@ import { useRouter, useRoute } from 'vue-router';
import { getDetailWarehouse, getDeptWarehouse } from '@/api/basicdata/basicdataWarehouse'; //
import { deepClone } from '@/utils/util';
import { getToken } from '@/utils/auth';
import error from '@/error';
const $router = useRouter();
const $useStore = useStore(); //
const formCopy = ref({}); //
const form = ref({
basis: {
@ -722,6 +759,9 @@ const form = ref({
Proportion: 100, //
totalMax: 100, //
Processed: false, //
dialogVisible: false, //
url: '', //
srcList: [], //
//
PackageList: [
{
@ -779,16 +819,16 @@ const ruleForm = reactive({
{ required: true, message: '请输入调查经过', trigger: ['bulr', 'change'] },
],
result: [{ required: true, message: '请输选择处理结果', trigger: ['bulr'] }],
processor: [{ required: true, message: '请输入处理方', trigger: ['bulr'] }],
processor: [{ required: true, message: '请选择处理方', trigger: ['bulr'] }],
processorEntityList: [{ required: true, message: '请选择责任方', trigger: ['bulr'] }],
},
packageCode: [{ required: true, message: '请输入包条码', trigger: ['bulr', 'change'] }],
waybillNumber: [{ required: true, message: '请输入运单号', trigger: ['bulr', 'change'] }],
orderCode: [{ required: true, message: '请输入订单自编号', trigger: ['bulr', 'change'] }],
first: [{ required: true, message: '请输入一级品', trigger: ['bulr', 'change'] }],
secondary: [{ 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: true, message: '请输入占比', trigger: ['bulr', 'change'] }],
@ -809,10 +849,22 @@ const Exceptionoptions = ref([]);
const Discoveringoptions = ref([]);
// /
const Processingoptions = ref([]);
// 线
const Responsibleline = ref([]);
//
const Paymentmethodoptions = ref([]);
//
const Processingresultsoptions = ref([]);
onActivated(() => {
console.log($useStore, '$useStore');
console.log('进入缓存');
// if ($useStore.state.isRefresh.refreshObj.aftersalesWorkOrderAdd) {
// //
// $useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrderAdd', status: false });
// }
});
//
async function updateDictionary(targetArray, dictionaryType) {
await getDictionaryBiz(dictionaryType).then(res => {
@ -838,6 +890,7 @@ const Handling = async () => {
});
}
Processingoptions.value = deepClone(data);
Responsibleline.value = deepClone(data);
}
});
};
@ -934,6 +987,11 @@ const DiscoveringNodesChange = async value => {
typeServiceName: form.value.basis.typeServiceName, //
TabactiveName: 1, //
};
if (value == '3') {
form.value.basis.processorEntityList = [];
} else {
delete form.value.basis.processorEntityList;
}
console.log(form.value.basis, 'form.value.basis');
//
form.value.Proportion = 0;
@ -943,6 +1001,10 @@ const DiscoveringNodesChange = async value => {
await PackageListReset();
ruleFormRef.value.clearValidate();
};
//
const workOrderTypeChange = value => {
console.log(value);
};
//
const displaySettings = computed(() => {
return {
@ -953,6 +1015,7 @@ const displaySettings = computed(() => {
deliverGoodsTime: ['2'].includes(form.value.groundlineType), //
warehousingTime: ['4'].includes(form.value.groundlineType), //
discoveryTime: ['4', '5', '6', '7'].includes(form.value.groundlineType), //
processorEntityList: ['3'].includes(form.value.groundlineType), //线
waybillMall: true, //
typeServiceName: true, //
processor: true, //
@ -1075,7 +1138,7 @@ const Totalamount = () => {
};
const Claimssettlement = value => {
if(value.length){
if (value.length) {
let data = [];
value.forEach(item => {
let _data = Processingresultsoptions.value.find(res => res.value == item);
@ -1118,6 +1181,11 @@ const beforeAvatarUpload = rawFile => {
}
return true;
};
//
const Imgpreview = value => {
form.value.dialogVisible = true;
form.value.url = 'https://www.keaitupian.cn/cjpic/frombd/1/253/4039753288/2920140411.jpg';
};
//
const ImgSuccess = (response, uploadFile) => {
if (response.success === true) {
@ -1378,6 +1446,8 @@ const allFieldsFilled = computed(() => {
const onSubmit = () => {
console.log(form.value);
ruleFormRef.value.validate(valid => {
console.log(ruleFormRef.value, 'ruleFormRef.value');
console.log(valid, 'valid');
if (!valid) {
ElMessage({
message: '息未填写完整,请根据提示填写完整!',
@ -1386,7 +1456,8 @@ const onSubmit = () => {
return;
}
//
if (form.value.groundlineType == '1') {
if (form.value.basis.workOrderType == '1') {
console.log(form.value.fileList.length, '');
if (form.value.fileList.length < 2) {
ElMessage({
message: '请上传最低2张图片附件',
@ -1396,10 +1467,10 @@ const onSubmit = () => {
}
}
//
if (form.value.groundlineType == '3') {
if (form.value.basis.workOrderType == '3') {
if (!form.value.fileList.length) {
ElMessage({
message: '请上传图片附件',
message: '请上传窜货图片附件',
type: 'warning',
});
return;
@ -1435,9 +1506,22 @@ const onSubmit = () => {
//
submitData.orderCode = form.value.PackageList[0].orderCode;
}
//
if (form.groundlineType == '1') {
//
if (form.value.basis.processor.length) {
submitData.processorEntityList = [];
form.value.basis.processor.forEach(item => {
submitData['processorEntityList'].push({
businessName: Processingoptions.value.find(res => res.value == item).label, //
businessId: item, //ID
conditions: 1, //
typesOf: 2, //1 2
});
});
}
//
if (form.value.groundlineType == '1') {
form.value.responsibilitiesList.forEach(item => {
submitData['processorEntityList'].push({
businessName: item.Responsibleoptions.find(res => res.value == item.businessId).label, //
@ -1447,18 +1531,22 @@ const onSubmit = () => {
});
});
}
//
if (form.value.basis.processor.length) {
submitData.processorEntityList = [];
form.value.basis.processor.forEach(item => {
// 线
if (form.value.groundlineType == '3') {
if (form.value.basis.processorEntityList && form.value.basis.processorEntityList.length) {
form.value.basis.processorEntityList.forEach(item => {
console.log(item, '干线卸车');
submitData['processorEntityList'].push({
businessName: Processingoptions.value.find(res => res.value == item).label, //
businessName: Responsibleline.value.find(res => res.value == item).label, //
businessId: item, //ID
conditions: 1, //
typesOf: 2, //1 2
typesOf: 1, //1 2
});
});
}
}
//
if (form.value.basis.discoveryNode != 3) {
// 线
@ -1479,12 +1567,12 @@ const onSubmit = () => {
data.businessId = item.businessId; //id
} else {
data.personResponsibleId = item.personResponsibleId; //id
(data.personResponsibleName = item.ResponsibleoNameptions.find(
data.personResponsibleName = item.ResponsibleoNameptions.find(
res => res.id == item.personResponsibleId
).name), //
(data.businessName = item.Responsibleoptions.find(
).name; //
data.businessName = item.Responsibleoptions.find(
res => res.value == item.businessId
).label); //
).label; //
data.businessId = item.businessId; //id
}
submitData['personResponsibleDTO'].push(data);
@ -1547,8 +1635,8 @@ const onSubmit = () => {
submitData.aftersalesProcessingResultsDTO.resultDescription =
form.value.basis.resultDescription; //
delete form.value.basis.resultDescription; //
}else{
delete submitData.result;//
} else {
delete submitData.result; //
}
console.log(submitData, '处理好的参数');
form.value.Pageloading = true; //
@ -1579,7 +1667,11 @@ const onSubmit = () => {
form.value.Pageloading = false; //
})
.catch(() => {
$store.commit('DEL_TAG_CURRENT'); //
$useStore.commit('EDIT_REFRESHITEM', {
title: 'aftersalesWorkOrder',
status: true,
});
$useStore.commit('DEL_TAG_CURRENT'); //
$router.push({
path: '/aftersales/aftersalesWorkOrder',
});
@ -1760,6 +1852,12 @@ const TabactiveClick = (a, b) => {
align-items: center;
justify-content: center;
}
// .el-dialog{
// height: 40% !important;
// img{
// height: 100% !important;
// }
// }
.el_responsibilities {
display: flex;
flex-wrap: wrap;

131
src/views/aftersales/aftersalesWorkOrderInfo.vue

@ -186,6 +186,29 @@
/>
</el-form-item>
<!-- 干线卸车 -->
<el-form-item
label="责任方"
class="processor_box"
style="width: 42%"
v-if="displaySettings.processorEntityList"
>
<el-select
v-model="Indexform.processorEntityList"
placeholder="请选择责任方"
multiple
filterable
clearable
>
<el-option
v-for="item in warehouseData"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item
class="processor_box"
label="处理方"
@ -214,7 +237,13 @@
label="调查经过"
v-if="displaySettings.investigationPocess"
>
<el-input :rows="2" type="textarea" v-model="Indexform.investigationProcess" disabled />
<el-input
:rows="2"
type="textarea"
v-model="Indexform.investigationProcess"
disabled
placeholder="暂无调查经过"
/>
</el-form-item>
</div>
</div>
@ -300,7 +329,11 @@
</el-tab-pane>
</el-tabs>
</el-form>
<el-tabs type="border-card" class="el_Processingresults" v-if="Indexform.result && Indexform.result.length">
<el-tabs
type="border-card"
class="el_Processingresults"
v-if="Indexform.result && Indexform.result.length"
>
<el-tab-pane>
<template #label>
<span class="custom-tabs-label">
@ -340,7 +373,11 @@
</el-form-item>
<el-form-item label="支付单位">
<el-input v-model="item.paymentUnit" disabled :placeholder="item.paymentUnit ||'未填写支付单位'"/>
<el-input
v-model="item.paymentUnit"
disabled
:placeholder="item.paymentUnit || '未填写支付单位'"
/>
</el-form-item>
<el-form-item label="理赔支付时间">
<el-date-picker
@ -350,11 +387,15 @@
value-format="YYYY-MM-DD HH:mm:ss"
size="default"
disabled
:placeholder="item.compensationTime ||'未选择支付时间'"
:placeholder="item.compensationTime || '未选择支付时间'"
/>
</el-form-item>
<el-form-item label="支付方式">
<el-input v-model="item.text" disabled :placeholder="item.text ||'未选择支付方式'"/>
<el-input
v-model="item.text"
disabled
:placeholder="item.text || '未选择支付方式'"
/>
</el-form-item>
</div>
</div>
@ -369,7 +410,7 @@
<el-form-item label="处理结果说明" class="el_resj" v-if="ProcessingList.length">
<el-input
v-model="Indexform.resultDescription"
:placeholder="Indexform.resultDescription ||'未填写处理结果说明'"
:placeholder="Indexform.resultDescription || '未填写处理结果说明'"
clearable
:autosize="{ minRows: 1, maxRows: 4 }"
type="textarea"
@ -380,7 +421,11 @@
</el-tabs>
<!-- 完结信息 -->
<el-tabs type="border-card" class="demo-tabs el-endtabs" v-if="CompensationParty.length">
<el-tabs
type="border-card"
class="demo-tabs el-endtabs"
v-if="CompensationParty.length && CompletedView.includes(Mydata.id)"
>
<el-tab-pane>
<template #label>
<span class="custom-tabs-label">
@ -394,9 +439,9 @@
<div class="payanindemnity" v-for="(item, index) in CompensationParty" :key="index">
<div class="el_pklab">
<!-- {{ item.cld }} -->
<span class="title" :style="{ color: item.state != 0 ? '#000' : '#F56C6C' }"
>{{ item.state == 0 ? '赔款方' : '受款方' }}</span
>
<span class="title" :style="{ color: item.state != 0 ? '#000' : '#F56C6C' }">{{
item.state == 0 ? '赔款方' : '受款方'
}}</span>
</div>
<div class="el_pkLi">
@ -432,10 +477,7 @@
<div class="sk_input">
<span>金额</span>
<el-tooltip :content="item.num ? item.num : '0'" placement="top">
<el-input
v-model="item.num"
disabled
/>
<el-input v-model="item.num" disabled />
</el-tooltip>
</div>
@ -471,38 +513,23 @@
>
</div>
</el-tab-pane>
</el-tabs>
<!-- 仲裁原因 -->
<!-- v-if="routerState == 'end'" -->
<div class="arbitrate" v-if="Indexform.arbitrate">
<el-tabs type="border-card" class="demo-tabs">
<el-tab-pane>
<template #label>
<span class="custom-tabs-label">
<el-icon>
<Star />
</el-icon>
<span>仲裁原因</span>
</span>
</template>
<div class="arbitrate">
<el-form-item label="仲裁原因">
<el-input
v-model="Indexform.arbitrate"
type="textarea"
:autosize="{ minRows: 5, maxRows: 4 }"
disabled
placeholder="暂无仲裁原因"
/>
</el-tab-pane>
</el-tabs>
</el-form-item>
</div>
</el-tabs>
<!-- 照片回显 -->
<el-tabs
type="border-card"
class="demo-tabs el-photo"
v-if="Indexform.packList.length"
>
<el-tabs type="border-card" class="demo-tabs el-photo" v-if="Indexform.packList.length">
<el-tab-pane>
<template #label>
<span class="custom-tabs-label">
@ -571,7 +598,7 @@
type="primary"
v-if="PermissionButton.information_editing"
@click="EditInformation"
>信息编辑</el-button
>修改提交</el-button
>
<el-button
type="primary"
@ -800,6 +827,7 @@ const dialogReturn = ref(false); //打回弹窗
const appeal = ref(false); //
const AppealReview = ref(false); //
const warehouseIdState = ref(false); //
const CompletedView = ref([]); //
const CompensationParty = ref([
{
name: '',
@ -1012,6 +1040,7 @@ const displaySettings = computed(() => {
deliverGoodsTime: ['2'].includes(Indexform.value.discoveryNode), //
warehousingTime: ['4'].includes(Indexform.value.discoveryNode), //
discoveryTime: ['4', '5', '6', '7'].includes(Indexform.value.discoveryNode), //
processorEntityList: ['3'].includes(Indexform.value.discoveryNode), //线
waybillMall: true, //
typeServiceName: true, //
processor: true, //
@ -1077,6 +1106,8 @@ const onLoad = () => {
}
Indexform.value['result'] = [];
Indexform.value['processor'] = [];
Indexform.value['processorEntityList'] = []; //
//
Indexform.value.arbitrate = res.data.data.reasonArbitration; //
Indexform.value.packList = res.data.data.decreaseImageVOList.map(res => {
@ -1116,14 +1147,19 @@ const onLoad = () => {
tripartite: res.tripartite, //
};
});
// /
res.data.data.processorVOList.forEach(item => {
if (item) {
if (item.typesOf == 2) {
//
Indexform.value.processor.push(item.businessId);
} else {
//
Indexform.value.processorEntityList.push(item.businessId);
}
}
});
companyProportion.value = 100 - sum;
getDictionaryBiz('result_handling').then(res => {
console.log(res, '发现环节');
@ -1187,6 +1223,16 @@ const onLoad = () => {
});
});
}
//
if (CompensationParty.value.length) {
CompletedView.value = CompensationParty.value.map(item => {
if (item.warehouseId) {
return item.warehouseId;
}
});
console.log(CompletedView.value, '可以看到完结信息的仓库');
console.log(Mydata.value.id, '当前登录仓库');
}
});
});
//
@ -2244,7 +2290,7 @@ const ResultDetermination = () => {
}
.el-endtabs {
margin-top: 10px;
:deep(.is-active){
:deep(.is-active) {
font-weight: bold;
}
}
@ -2339,6 +2385,17 @@ const ResultDetermination = () => {
.arbitrate {
margin-top: 10px;
:deep(.el-form-item) {
flex-direction: column;
align-items: flex-start;
.el-form-item__label {
font-size: 14px;
font-weight: bold;
}
.el-form-item__content {
width: 100% !important;
}
}
}
.el_BatchFrom {

50
src/views/aftersales/aftersalesWorkOrderend.vue

@ -170,6 +170,31 @@
/>
</el-form-item>
<!-- 干线卸车 -->
<el-form-item
label="责任方"
class="processor_box"
style="width: 42%"
v-if="displaySettings.processorEntityList"
>
<el-select
v-model="endFrom.processorEntityList"
placeholder="请选择责任方"
disabled
multiple
filterable
clearable
>
<el-option
v-for="item in warehouseData"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item
class="processor_box"
label="处理方"
@ -206,7 +231,7 @@
</el-tab-pane>
</el-tabs>
<el-tabs type="border-card" class="Responsible_box">
<el-tabs type="border-card" class="Responsible_box" v-if="FangAddList.length">
<el-tab-pane label="责任方信息">
<div class="ResponsibilityBox">
<div></div>
@ -1188,6 +1213,9 @@ const onLoad = async () => {
endFrom.value.result = [];
endFrom.value.processor = [];
endFrom.value.packageImage = [];
//
if (res.data.data.discoveryNode == '1') {
groundlineType.value = '1';
@ -1210,8 +1238,23 @@ const onLoad = async () => {
.map(item => {
return { businessName: item.businessId };
});
// 线
if(res.data.data.discoveryNode == '3'){
endFrom.value.processorEntityList=[]
res.data.data.processorVOList.forEach(item => {
if (item) {
if (item.typesOf == '1') {
//
endFrom.value.processorEntityList.push(item.businessId);
}
}
});
}
let factorydata = res.data.data.personResponsibleVOS.find(item => item.typesOf);
if (factorydata.typesOf) {
if (factorydata && factorydata.typesOf) {
groundlineType.value = true; //
}
FangAddList.value = res.data.data.personResponsibleVOS.map(res => {
@ -1567,10 +1610,11 @@ const displaySettings = computed(() => {
deliverGoodsTime: ['2'].includes(endFrom.value.discoveryNode), //
warehousingTime: ['4'].includes(endFrom.value.discoveryNode), //
discoveryTime: ['4', '5', '6', '7'].includes(endFrom.value.discoveryNode), //
processorEntityList: ['3'].includes(endFrom.value.discoveryNode), //线
waybillMall: true, //
typeServiceName: true, //
processor: true, //
investigationPocess: true, //
investigationProcess: true, //
};
});

2
src/views/aftersales/aftersalesWorkOrdermodify.vue

@ -672,7 +672,7 @@
@click="ConfirmForm"
v-if="$route.query.EditInformation && UserPermissions == '仓库客服'"
>
编辑提交
处理完毕
</el-button>
<!--编辑提交-->

100
src/views/aftersales/aftersalesWorkOrdermodifyTemp.vue

@ -356,10 +356,10 @@
prop="basis.investigationPocess"
class="el_Investigation"
clearable
v-if="displaySettings.investigationPocess"
v-if="displaySettings.investigationProcess"
>
<el-input
v-model="form.basis.investigationPocess"
v-model="form.basis.investigationProcess"
placeholder="请输调查经过"
type="textarea"
:autosize="{ minRows: 1, maxRows: 10 }"
@ -779,7 +779,7 @@ const ruleForm = reactive({
discoveryTime: [{ required: true, message: '请选择发现时间', trigger: ['bulr', 'change'] }],
waybillMall: [{ required: true, message: '请输入运单商场', trigger: ['bulr'] }],
typeServiceName: [{ required: false, message: '请输入合作模式', trigger: ['bulr', 'change'] }],
investigationPocess: [
investigationProcess: [
{ required: true, message: '请输入调查经过', trigger: ['bulr', 'change'] },
],
result: [{ required: true, message: '请输选择处理结果', trigger: ['bulr'] }],
@ -914,9 +914,6 @@ const getPageData = async () => {
console.log(pageData, '获取的数据');
//
let basic = form.value.basis;
basic.workOrderType = pageData.workOrderType; //
basic.discoveryNode = pageData.discoveryNode; //
//
if (pageData.abnormalPackageVOList && pageData.abnormalPackageVOList.length) {
form.value.PackageList = [];
@ -955,13 +952,49 @@ const getPageData = async () => {
basic.discoveryTime = pageData.discoveryTime; //
basic.waybillMall = pageData.waybillMall; //
basic.typeServiceName = pageData.typeServiceName; //
basic.investigationProcess = pageData.investigationProcess; //
basic.workOrderType = pageData.workOrderType; //
basic.discoveryNode = pageData.discoveryNode; //
form.value.groundlineType = pageData.discoveryNode; //
//
if (pageData.processorVOList && pageData.processorVOList.length) {
basic.processor = pageData.processorVOList
.filter(res => res.typesOf == '2')
.map(item => item.businessId);
}
//
if (pageData.personResponsibleVOS && pageData.personResponsibleVOS.length) {
form.value.responsibilitiesList=[];//
pageData.personResponsibleVOS.forEach(item => {
let data = {
businessId:item.businessId, //
personResponsibleId:item.personResponsibleId, //
responsibilityRatio:Number(item.responsibilityRatio), //
description: item.description, //
tripartite: item.tripartite, //
ProportionMax: 100, //
valueId:item.id,
Processingoptions: [
//
...ResponsibleParty.value,
],
Responsibleoptions: [
//
...Processingoptions.value,
],
ResponsibleoNameptions: [
{
name: item. personResponsibleName,
id: item.personResponsibleId,
}
//
],
id: form.value.responsibilitiesList.length + 1,
};
form.value.responsibilitiesList.push(data);
calculateMaxValues();
});
}
})
.catch(error => {
console.log(error, 'error');
@ -1003,7 +1036,7 @@ const handleClick = (tab, event) => {
};
//
const DiscoveringNodesChange = async value => {
console.log(value, 'value');
console.log(value, '发现节点');
form.value.groundlineType = value;
form.value.basis = {
workOrderType: form.value.basis.workOrderType, //
@ -1033,7 +1066,7 @@ const displaySettings = computed(() => {
waybillMall: true, //
typeServiceName: true, //
processor: true, //
investigationPocess: true, //
investigationProcess: true, //
};
});
//
@ -1493,6 +1526,55 @@ const onSubmit = () => {
type: 'warning',
}).then(async () => {
form.value.Pageloading = true; //
let DataSubmit = {
packageEntityList: [], //
unPpackageEntityList: [], //ID
processorEntityList: [], //
decreaseImageEntityList: [], //
unProcessorEntityList: [], //
unDecreaseImageEntityList: [], //
completionRecipientEntities: [], //()
completionRecordEntities: [], //()
aftersalesProcessingResultsDTO: {}, //
personResponsibleDTO: [], //
unPersonResponsibleDTO: [], //
surveyRecordDTO: {}, //
unCompletionRecipientEntities: [], //
unCompletionRecordEntities: [], //
};
//ID
DataSubmit.id = $route.query.id;
return
let submitData = {
...form.value.basis,

5
src/views/distribution/deliverylist/distributionDeliveryListedt.vue

@ -128,9 +128,8 @@
<!-- </div>-->
<!-- </div>-->
<!-- </el-row>-->
<el-button type="warning" plain icon="el-icon-download" @click="handleExport"
>
</el-button>
<el-button style=" margin-bottom: 10px;" type="primary" icon="Position" @click="handleExport">导出</el-button>
<el-tabs
v-model="activeTab"
@tab-click="handleTabClick"

2
src/views/distribution/inventory/distrilbutionBillLadingView.vue

@ -56,7 +56,7 @@
<el-divider>订单列表</el-divider>
<el-tabs type="border-card" v-model="activeTab" @tab-click="handleTabClick">
<el-button style=" margin-bottom: 10px;" type="primary" icon="Position" @click="Listexport">清单导出</el-button>
<el-button style=" margin-bottom: 10px;" type="primary" icon="Position" @click="Listexport">导出</el-button>
<el-tab-pane label="订 单 列 表" name="tab2">
<!-- <el-button type="primary" icon="Position" @click="Orderexport">订单导出</el-button> -->
<!-- 列表模块 -->

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

@ -379,7 +379,7 @@
type="border-card"
@tab-click="tabClick"
>
<el-button type="primary" @click="Signforexport">导出</el-button>
<el-button style=" margin-bottom: 10px;" type="primary" icon="Position" @click="Signforexport">导出</el-button>
<template v-for="item in Tabs" :key="item.name">
<el-tab-pane :label="item.label" :name="item.name">
<template v-if="item.type === 'package'">

Loading…
Cancel
Save