Browse Source

修复已知bug

dev-xx
马远东 4 months ago
parent
commit
7e188254a4
  1. 657
      src/views/aftersales/aftersalesWorkOrderTemp.vue
  2. 2
      vite.config.js

657
src/views/aftersales/aftersalesWorkOrderTemp.vue

@ -90,7 +90,7 @@
<el-button icon="el-icon-refresh" @click="searchChangeS" circle></el-button>
</el-tooltip>
<el-tooltip content="重置表格搜索" placement="left">
<el-tooltip content="重置表格搜索" placement="top">
<el-button icon="CircleClose" @click="ResetTableSearch" circle></el-button>
</el-tooltip>
@ -131,6 +131,30 @@
<template v-if="slotProps.scope.column.label === '操作'">
<el-text @click="ViewDetails(slotProps.scope.row)">查看</el-text>
<el-text
@click="WorkOrderAppeal(slotProps.scope.row)"
v-if="
PermissionButton.Work_order_appeal &&
slotProps.scope.row.canRepresentations &&
slotProps.scope.row.workOrderStatus != 100
"
>申诉</el-text
>
<el-text
@click="CancelWorkOrderAppeal(slotProps.scope.row)"
v-if="PermissionButton.Cancel_appeal_button && slotProps.scope.row.typesOf == '0'"
>取消申诉</el-text
>
<el-text
v-if="PermissionButton.Appeal_editor_button && slotProps.scope.row.typesOf == '0'"
@click="WorkOrderAppeal(slotProps.scope.row, 'edit')"
>编辑</el-text
>
<el-text
v-if="PermissionButton.Delete_appeal_button && slotProps.scope.row.typesOf == '3'"
@click="Deleteappealrecords(slotProps.scope.row, 'edit')"
>删除记录</el-text
>
</template>
</template>
</tablecmt>
@ -155,6 +179,59 @@
</div>
</el-row>
</div>
<!-- 申诉弹窗 -->
<el-dialog
v-model="appeal.dialogappeal"
:title="appeal.AppealeditorState ? '工单申述编辑' : '工单申诉'"
width="60%"
>
<el-form ref="appealruleFormRef" :model="appeal" :rules="appealrules">
<div class="el_appeal" v-loading="appeal.loadingappeal" element-loading-text="Loading...">
<el-form-item label="选择实际责任方" prop="Appealselection">
<el-select
v-model="appeal.Appealselection"
clearable
filterable
multiple
placeholder="请选择实际责任方"
>
<el-option
v-for="item in warehouseData"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="申诉原因" prop="Reasonforappeal">
<el-input
v-model="appeal.Reasonforappeal"
:rows="4"
type="textarea"
placeholder="请输入申诉原因"
/>
</el-form-item>
<el-form-item label="照片(上传一张)">
<el-upload
v-model:file-list="appeal.AppealAttachment"
list-type="picture-card"
:action="doubledCount"
:before-upload="beforeAvatarUpload"
:headers="headers"
multiple
drag
>
<el-icon><Plus /></el-icon>
</el-upload>
</el-form-item>
<span class="el_sdialog-footer">
<el-button @click="appeal.dialogappeal = false">取消</el-button>
<el-button type="primary" @click="Appealbutton"> 确定 </el-button>
</span>
</div>
</el-form>
</el-dialog>
</basic-container>
<!-- 列表配置显示 -->
@ -186,7 +263,9 @@ import {
} from '@/utils/util';
import { ElMessageBox, ElMessage } from 'element-plus';
import { getDictionaryBiz } from '@/api/system/dict';
import { getToken } from '@/utils/auth';
import dayjs from 'dayjs';
import { getDetailWarehouse, getDeptWarehouse } from '@/api/basicdata/basicdataWarehouse'; //
import {
$_getList,
$_submit,
@ -263,6 +342,19 @@ const tabValue = ref(0); //菜单激活
const UserPermissions = ref(''); //
const workOrderStatus = ref(30); //
const PageLoading = ref(false); //loading
const warehouseData = ref([]); //
const UserInfo = ref({}); //
const appeal = ref({
dialogappeal: false, //
AppealeditorState: false, //()
loadingappeal: false, //loading
Appealselection: [], //
AppealAttachment: [], //
Reasonforappeal: '', //
selectList: [], //
selectionList: [], //
});
const appealruleFormRef = ref();
const columnListName = ref('columnList');
const columnLists = [
'columnList',
@ -325,7 +417,78 @@ const TabList = ref([
createTabItem(10, '申诉列表'),
createTabItem(7, '超时未处理'),
]);
/**
* @description 申诉按钮的逻辑
* @returns {boolean} 是否显示申诉按钮
*/
const WorkOrderAppealButton = () => {
//
if (UserPermissions.value == Useridentity.Warehouse_customer_service) {
//
if (TabPermissions.value == 6) {
//
return true;
}
}
//
return false;
};
/**
* @description 取消申诉按钮的逻辑
* @returns {boolean} 是否显示申诉按钮
*/
const CancelAppealButton = () => {
//
if (UserPermissions.value == Useridentity.Warehouse_customer_service) {
//
if (TabPermissions.value == 10) {
//
return true;
}
}
return false;
};
/**
* @description 编辑申诉按钮的逻辑
* @returns {boolean} 是否显示申诉编辑按钮
*/
const AppealEditorButton = () => {
//
if (UserPermissions.value == Useridentity.Warehouse_customer_service) {
//
if (TabPermissions.value == 10) {
//
return true;
}
}
return false;
};
/**
* @description 编辑申诉按钮的逻辑
* @returns {boolean} 是否显示申诉删除按钮
*/
const Deleteappealbutton = () => {
//
if (UserPermissions.value == Useridentity.Warehouse_customer_service) {
//
if (TabPermissions.value == 10) {
//
return true;
}
}
//
return false;
};
/**
* @description 操作栏按钮权限
* @returns {boolean} 是否显示相关按钮
*/
const PermissionButton = computed(row => ({
Work_order_appeal: WorkOrderAppealButton(),
Cancel_appeal_button: CancelAppealButton(),
Appeal_editor_button: AppealEditorButton(),
Delete_appeal_button: Deleteappealbutton(),
}));
const ButtonPermissions = computed(() => {
// TabPermissions
switch (TabPermissions.value) {
@ -609,7 +772,35 @@ const {
recorddata,
defaultTime2,
} = toRefs(details);
watch(
() => $route.path,
(newPath, oldPath) => {
if ($useStore.state.isRefresh.refreshObj.aftersalesWorkOrder) {
TabPermissions.value = $useStore.state.Customer.Customerobj;
tabValue.value = $useStore.state.Customer.Customerobj; //
if ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].includes(TabPermissions.value)) {
let _Obj = MatchCurrentMenu(); //
_Obj.request = true; //
PublicDataRequest(TabPermissions.value); //
$useStore.commit('Customer_Menu', 0); //
}
$useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrder', status: false }); //
}
}
);
const appealrules = reactive({
Reasonforappeal: [{ required: true, message: '请选择责任方', trigger: 'blur' }],
Appealselection: [{ required: true, message: '请填写申诉原因', trigger: 'blur' }],
});
//
const doubledCount = computed(() => {
return '/api/blade-resource/oss/endpoint/put-file';
});
// TOKEN
const headers = computed(() => {
return { 'Blade-Auth': 'Bearer ' + getToken() };
});
/** 展开列表控件 */
const showdrawer = _flag => {
details.drawerShow = _flag;
@ -617,7 +808,6 @@ const showdrawer = _flag => {
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
console.log(details.query, 'details.query');
let _Obj = MatchCurrentMenu(); //
_Obj.request = true; //
_Obj.query = details.query;
@ -665,12 +855,11 @@ const searchChangeS = () => {
//
const ResetTableSearch = async () => {
let _Obj = MatchCurrentMenu();
console.log(TabPermissions.value, '123123123');
_Obj.request = true;
console.log(_Obj, 'Obj');
await handleClearTableQuery(details.columnListPublic);
let _query = await getQuery(); //
console.log(_query, '查询条件');
_Obj = {};
_query = {};
_Obj.query = {};
PublicDataRequest(TabPermissions.value, true);
};
//
@ -770,12 +959,15 @@ const Roleverification = () => {
console.error('解析用户角色信息出错:', error);
return;
}
UserInfo.value = JSON.parse(userInfo); //
//
const matchingItem = dictionaries.after_sales_visits.value.find(item =>
roleNames.includes(item.label)
);
//
if (matchingItem) {
console.log(matchingItem, '匹配出来的角色');
UserPermissions.value = matchingItem.label;
}
// TabList
@ -798,18 +990,34 @@ const Roleverification = () => {
onMounted(() => {
autoscaling();
});
/**
* 获取所有仓库信息
*/
const GetWarehouse = () => {
getDeptWarehouse({}).then(res => {
res.data.data.forEach(item => {
warehouseData.value.push({
value: item.id,
label: item.name,
disabled: item.name == localStorage.getItem('WarehouseName'),
});
});
});
};
/**
*页面初始化函数包含字典等必要请求
*/
const PageOnlaod = async () => {
PageLoading.value = true;
try {
//
await Promise.all([
Dictionaryrequest(), //
Roleverification(), //
SelectionInitialization(), //
]);
await Dictionaryrequest(), //
//
await Promise.all([
Roleverification(), //
SelectionInitialization(), //
GetWarehouse(), //
]);
//
PublicDataRequest(TabPermissions.value);
@ -896,6 +1104,9 @@ const PublicDataRequest = async (value, Reset) => {
* @return {void} 无返回值
*/
const Processingworkorderstatus = value => {
console.log(UserPermissions.value, 'UserPermissions.value');
console.log(Useridentity.Warehouse_customer_service, 'Useridentity.Warehouse_customer_service');
switch (value) {
case 0: //
workOrderStatus.value =
@ -915,7 +1126,7 @@ const Processingworkorderstatus = value => {
workOrderStatus.value = 70;
break;
case 6: //
workOrderStatus.value = 90;
workOrderStatus.value = 80;
break;
case 9: //
workOrderStatus.value =
@ -931,8 +1142,8 @@ const updatePageDetails = (pageSize, currentPage) => {
details.page.pageSize = pageSize;
details.page.currentPage = currentPage;
};
const MatchCurrentMenu = () => {
return TabList.value.find(res => res.name == TabPermissions.value);
const MatchCurrentMenu = (ID =TabPermissions.value) => {
return TabList.value.find(res => res.name == ID);
};
//
const sizeChange = value => {
@ -1157,13 +1368,213 @@ const CreateworkOrder = () => {
$router.push('/aftersales/aftersalesWorkOrderAdd');
};
/**
* @description: 全部常工单号跳转到详情信息页面
*
* @description 工单申诉
*/
const WorkOrderAppeal = async (row, state) => {
appeal.value.selectList = [];
appeal.value.AppealAttachment = []; //
appeal.value.Appealselection = []; //
appeal.value.Reasonforappeal = ''; //
appeal.value.selectList.push(row); //
console.log(appeal.value.selectList, 'appeal.value.selectList');
appeal.value.dialogappeal = true; //
if (state == 'edit') {
//
appeal.value.AppealeditorState = true; //
console.log(row, 'row');
let data = {
id: row.id,
};
await $_AppealDetails(data).then(res => {
console.log(res, '申诉编辑回显');
appeal.value.Reasonforappeal = res.data.data.reason; //
setTimeout(() => {
if (res.data.data.peopleEntityList) {
appeal.value.Appealselection = res.data.data.peopleEntityList.map(
item => item.actualPersonId
);
}
if (res.data.data.imagePath) {
appeal.value.AppealAttachment.push({
url: res.data.data.imagePath,
});
}
}, 0);
});
return;
}
if (!state) {
appeal.value.AppealeditorState = false; //
}
};
//
const Appealbutton = async state => {
try {
await appealruleFormRef.value.validate();
} catch (fields) {
return;
}
const confirmResult = await ElMessageBox.confirm('是否确认发起工单申诉?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).catch(() => false);
if (!confirmResult) {
return;
}
if (appeal.value.AppealAttachment.length > 1) {
ElMessage({
message: '只能上传一张图片',
type: 'warning',
});
return;
}
appeal.value.loadingappeal = true;
let data = {
peopleEntityList: [],
imagePath: '',
workOrderId: '',
appealPeopleName: '',
};
data.reason = appeal.value.Reasonforappeal;
data.appealPeopleName = warehouseData.value
.filter(item => appeal.value.Appealselection.includes(item.value))
.map(item => item.label)
.join(',');
appeal.value.Appealselection.forEach(item => {
const selectedWarehouse = warehouseData.value.find(res => res.value === item);
data.peopleEntityList.push({
workOrderId: appeal.value.selectList[0].id,
reason: appeal.value.Reasonforappeal,
claimant: UserInfo.value.content.user_name,
actualPersonId: selectedWarehouse.value,
actualPersonName: selectedWarehouse.label,
});
});
data.workOrderId = appeal.value.AppealeditorState
? appeal.value.selectList[0].workOrderId
: appeal.value.selectList[0].id;
if (appeal.value.AppealeditorState) {
data.id = appeal.value.selectList[0].id;
}
if (appeal.value.AppealAttachment.length > 0) {
const attachment = appeal.value.AppealAttachment[0];
data.imagePath = attachment.response ? attachment.response.data.link : attachment.url;
}
console.log(data, '处理好的值');
try {
const { data: response } = await $_appealSubmit(data);
const { code, msg } = response;
if (code === 200) {
ElMessage({
message: msg,
type: 'success',
});
}
appeal.value.dialogappeal = false;
const currentMenu = MatchCurrentMenu();
currentMenu.request = true;
PublicDataRequest(TabPermissions.value);
} finally {
appeal.value.loadingappeal = false;
}
};
//
const Deleteappealrecords = async row => {
ElMessageBox.confirm('是否删除当前记录?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
try {
appeal.value.loadingappeal = true;
let data = {
ids: row.id,
};
let _res = await $_getDetails(data);
if (_res.data.code == 200) {
ElMessage({
message: '删除成功',
type: 'success',
});
let _Obj = MatchCurrentMenu();
_Obj.request = true;
PublicDataRequest(TabPermissions.value); //
}
} catch {
} finally {
appeal.value.loadingappeal = false;
}
})
.catch(() => {});
};
/**
*
* @description 工单取消申诉
*/
const CancelWorkOrderAppeal = row => {
ElMessageBox.confirm('是否取消申诉?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
let data = {
id: row.id, //ID
typesOf: '3', //
workOrderId: row.workOrderId, //ID
};
PageLoading.value = true;
$_Cancelappeal(data)
.then(res => {
console.log(res, '取消申诉返回值');
if (res.data.code == 200) {
let _Obj = MatchCurrentMenu();
_Obj.request = true;
PublicDataRequest(TabPermissions.value); //
ElMessage({
message: '取消申诉成功',
type: 'success',
});
}
})
.catch(error => {
console.log(error);
})
.finally(() => {
PageLoading.value = false;
});
})
.catch(() => {});
};
/**
* @description: [全部]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails0 = row => {
console.log(row, '当前行数据');
const workOrderInfoPath = '/aftersales/aftersalesWorkOrderInfo'; //
const workOrderInfoPath_Info = '/aftersales/aftersalesWorkOrderInfo'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-详情信息`,
@ -1171,7 +1582,147 @@ const ViewDetails0 = row => {
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath, query: { ...queryParams } });
$router.push({ path: workOrderInfoPath_Info, query: { ...queryParams } });
};
/**
* @description: [待回复]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails8 = row => {
console.log(row, '当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-回复信息`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
/**
* @description: [待回复]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails3 = row => {
console.log(row, '【待回复】当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-处理结果`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
/**
* @description: [处理中]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails1 = row => {
console.log(row, '【处理中】当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-处理结果`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
/**
* @description: [理赔金额未出]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails4 = row => {
console.log(row, '【理赔金额未出】当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.lawoId, //ID
subId: row.laprId, //ID
name: `${row.workOrderNumber}-处理结果`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
businessId: row.businessId, //ID
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
/**
* @description: [处理完毕]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails2 = row => {
console.log(row, '【处理完毕】当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-处理完毕`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
/**
* @description: [客服介入]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails5 = row => {
console.log(row, '【客服介入】当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-客服介入`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
/**
* @description: [待审核]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails9 = row => {
console.log(row, '【待审核】当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-待审核`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
/**
* @description: [完结]常工单号跳转到详情信息页面
* @param {Object} row - 当前行数据
* @return {void}
*/
const ViewDetails6 = row => {
console.log(row, '【完结】当前行数据');
const workOrderInfoPath_end = '/aftersales/aftersalesWorkOrderend'; //
const queryParams = {
id: row.id, //ID
name: `${row.workOrderNumber}-完结`,
workOrderNumber: row.workOrderNumber, //
RouteIndexs: TabPermissions.value, //
workOrderStatus: row.workOrderStatus, //
};
$router.push({ path: workOrderInfoPath_end, query: { ...queryParams } });
};
//
const ViewDetailsRow = row => {
@ -1181,6 +1732,31 @@ const ViewDetailsRow = row => {
ViewDetails0(row);
break;
case 1:
ViewDetails1(row);
break;
case 2:
ViewDetails2(row);
break;
case 3:
ViewDetails3(row);
break;
case 4:
ViewDetails4(row);
break;
case 5:
ViewDetails5(row);
break;
case 6:
ViewDetails6(row);
break;
case 8:
ViewDetails8(row);
break;
case 9:
ViewDetails9(row);
break;
default:
break;
}
};
@ -1197,6 +1773,30 @@ const ViewDetails = row => {
ViewDetails0(row); //
break;
case 1:
ViewDetails1(row);
break;
case 2:
ViewDetails2(row);
break;
case 3:
ViewDetails3(row);
break;
case 4:
ViewDetails4(row);
break;
case 5:
ViewDetails5(row);
break;
case 6:
ViewDetails6(row);
break;
case 8:
ViewDetails8(row);
break;
case 9:
ViewDetails9(row);
break;
default:
break;
}
};
@ -1245,4 +1845,23 @@ const ViewDetails = row => {
border-radius: 2px;
}
}
:deep(.el_appeal) {
.el-form-item {
flex-direction: column;
align-items: flex-start;
.el-form-item__label {
position: relative;
}
// .el-form-item__label::after {
// position: absolute;
// top: 0;
// left: -8px;
// content: '*';
// width: 10px;
// }
.el-form-item__content {
width: 100% !important;
}
}
}
</style>

2
vite.config.js

@ -39,7 +39,7 @@ export default ({ mode, command }) => {
// target: 'http://192.168.10.200:13000',
// target: 'http://192.168.3.16:13000',
// target: 'http://192.168.3.73:13000', //
// target: 'http://h5uapi.huitongys.com',
target: 'http://h5uapi.huitongys.com',
// target: 'http://test.api.huo5u.com',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, ''),

Loading…
Cancel
Save