|
|
|
@ -53,7 +53,11 @@
|
|
|
|
|
<el-button type="primary" icon="Avatar" v-if="ButtonPermissions.defaultassignments" |
|
|
|
|
>默认指派</el-button |
|
|
|
|
> |
|
|
|
|
<el-button type="primary" icon="CloseBold" v-if="ButtonPermissions.batchReject" |
|
|
|
|
<el-button |
|
|
|
|
type="primary" |
|
|
|
|
icon="CloseBold" |
|
|
|
|
v-if="ButtonPermissions.batchReject" |
|
|
|
|
@click="BatchReturnResults" |
|
|
|
|
>结果批量打回</el-button |
|
|
|
|
> |
|
|
|
|
<el-button type="primary" icon="FolderChecked" v-if="ButtonPermissions.ManagerConfirmed" |
|
|
|
@ -238,6 +242,53 @@
|
|
|
|
|
</div> |
|
|
|
|
</el-form> |
|
|
|
|
</el-dialog> |
|
|
|
|
<!-- 处理结果批量打回弹窗 --> |
|
|
|
|
<el-dialog v-model="BatchReturn.dialogReturn" title="批量打回" width="40%" class="plAllret"> |
|
|
|
|
<el-form |
|
|
|
|
v-loading="BatchReturn.repulseloading" |
|
|
|
|
element-loading-text="正在打回中..." |
|
|
|
|
label-position="top" |
|
|
|
|
label-width="100px" |
|
|
|
|
:model="BatchReturn.BatchFrom" |
|
|
|
|
:rules="BatchReturn.rules" |
|
|
|
|
ref="batchReturnForm" |
|
|
|
|
> |
|
|
|
|
<el-form-item label="打回原因" prop="txt"> |
|
|
|
|
<el-input |
|
|
|
|
v-model="BatchReturn.BatchFrom.txt" |
|
|
|
|
type="textarea" |
|
|
|
|
:rows="4" |
|
|
|
|
placeholder="请输入打回原因" |
|
|
|
|
/> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<el-form-item label="流转营业部" prop="businessDepartment"> |
|
|
|
|
<el-select |
|
|
|
|
v-model="BatchReturn.BatchFrom.businessDepartment" |
|
|
|
|
multiple |
|
|
|
|
filterable |
|
|
|
|
default-first-option |
|
|
|
|
:reserve-keyword="false" |
|
|
|
|
placeholder="请选择要打回的营业部" |
|
|
|
|
> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in warehouseData" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
<template #footer> |
|
|
|
|
<span class="dialog-footer"> |
|
|
|
|
<el-button @click="BatchReturn.BatchReturn.dialogReturn = false">取消</el-button> |
|
|
|
|
<el-button type="primary" @click="ConfirmReturn()" :disabled="BatchReturn.repulseloading"> |
|
|
|
|
提交 |
|
|
|
|
</el-button> |
|
|
|
|
</span> |
|
|
|
|
</template> |
|
|
|
|
</el-dialog> |
|
|
|
|
</basic-container> |
|
|
|
|
<!-- 列表配置显示 --> |
|
|
|
|
|
|
|
|
@ -350,6 +401,18 @@ const workOrderStatus = ref(30); //工单状态
|
|
|
|
|
const PageLoading = ref(false); //页面loading |
|
|
|
|
const warehouseData = ref([]); //仓库信息 |
|
|
|
|
const UserInfo = ref({}); //登陆人信息 |
|
|
|
|
const batchReturnForm = ref(null); |
|
|
|
|
const BatchReturn = ref({ |
|
|
|
|
//批量打回弹窗 |
|
|
|
|
dialogReturn: false, |
|
|
|
|
// 批量打回loading, |
|
|
|
|
repulseloading: false, |
|
|
|
|
BatchFrom: {}, |
|
|
|
|
rules: { |
|
|
|
|
txt: [{ required: true, message: '请输入打回原因', trigger: 'blur' }], |
|
|
|
|
businessDepartment: [{ required: true, message: '请选择至少一个营业部', trigger: 'change' }], |
|
|
|
|
}, |
|
|
|
|
}); |
|
|
|
|
const appeal = ref({ |
|
|
|
|
dialogappeal: false, //工单申诉弹窗 |
|
|
|
|
AppealeditorState: false, //申诉是否为编辑状态(默认否) |
|
|
|
@ -561,7 +624,7 @@ const ButtonPermissions = computed(() => {
|
|
|
|
|
assignment: false, //工单指派 |
|
|
|
|
applyArbitration: false, //客服介入 |
|
|
|
|
DingTalkNumber: false, //钉钉号填 |
|
|
|
|
batchFinish: UserPermissions.value != Useridentity.Warehouse_customer_service, //批量完结 |
|
|
|
|
batchFinish: false, //批量完结 |
|
|
|
|
Batchdetermination: false, //批量确定 |
|
|
|
|
ManagerConfirmed: false, //处理完毕下面的客服经理批量确定 |
|
|
|
|
ArbitrationDetermination: false, //批量完结确定 |
|
|
|
@ -856,7 +919,8 @@ const timesc = (index, row) => {
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** 表格表头下拉框选择 */ |
|
|
|
|
const selectsc = (index, row) => { |
|
|
|
|
const selectsc = async(index, row) => { |
|
|
|
|
console.log(index, row); |
|
|
|
|
let _Obj = MatchCurrentMenu(); //匹配出当前菜单 |
|
|
|
|
_Obj.request = true; //更新请求状态 |
|
|
|
|
_Obj.query = details.query; |
|
|
|
@ -1007,7 +1071,7 @@ const Roleverification = () => {
|
|
|
|
|
}; |
|
|
|
|
if (UserPermissions.value) { |
|
|
|
|
updateTabState('8', UserPermissions.value == Useridentity.Warehouse_customer_service); |
|
|
|
|
updateTabState('9', UserPermissions.value == Useridentity.Headquarters_Manager); |
|
|
|
|
updateTabState('9', UserPermissions.value !== Useridentity.Warehouse_customer_service); |
|
|
|
|
} else { |
|
|
|
|
// 匹配不到角色时,默认为关闭状态(总部经理的审核菜单) |
|
|
|
|
updateTabState('9', false); |
|
|
|
@ -1032,7 +1096,17 @@ const GetWarehouse = () => {
|
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 处理角色下拉选择状态码 |
|
|
|
|
const ProcessingStatusCode = row => { |
|
|
|
|
// 全部筛选 |
|
|
|
|
console.log(row); |
|
|
|
|
if (UserPermissions.value == Useridentity.Headquarters_Manager) { |
|
|
|
|
// 如果是总部客服经理待审核状态改成500 |
|
|
|
|
row.checkarr.find(item => item.value == '40').value = '500'; |
|
|
|
|
} else { |
|
|
|
|
row.checkarr.find(item => item.value == '40').value = '40'; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
/** |
|
|
|
|
*页面初始化函数,包含字典,等必要请求 |
|
|
|
|
*/ |
|
|
|
@ -1141,8 +1215,8 @@ const Processingworkorderstatus = value => {
|
|
|
|
|
UserPermissions.value === Useridentity.Warehouse_customer_service ? 1000 : null; |
|
|
|
|
break; |
|
|
|
|
case 1: // 处理中 |
|
|
|
|
workOrderStatus.value = |
|
|
|
|
UserPermissions.value === Useridentity.Warehouse_customer_service ? 20 : 40; |
|
|
|
|
workOrderStatus.value = 20; |
|
|
|
|
// UserPermissions.value === Useridentity.Warehouse_customer_service ? 20 : 40; |
|
|
|
|
break; |
|
|
|
|
case 2: // 处理完毕 |
|
|
|
|
workOrderStatus.value = 30; |
|
|
|
@ -1158,7 +1232,7 @@ const Processingworkorderstatus = value => {
|
|
|
|
|
break; |
|
|
|
|
case 9: // 待审核 |
|
|
|
|
workOrderStatus.value = |
|
|
|
|
UserPermissions.value === Useridentity.Headquarters_Manager ? 500 : null; |
|
|
|
|
UserPermissions.value === Useridentity.Headquarters_Manager ? 500 : 40; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
workOrderStatus.value = null; |
|
|
|
@ -1892,6 +1966,72 @@ const ResultConfirmed = async row => {
|
|
|
|
|
} finally { |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
/** |
|
|
|
|
* @description: 批量处理结果(打回) |
|
|
|
|
* @return {void} 无返回值 |
|
|
|
|
*/ |
|
|
|
|
const BatchReturnResults = () => { |
|
|
|
|
if (!details.selectionList.length) { |
|
|
|
|
ElMessage({ |
|
|
|
|
message: '请勾选要处理的数据', |
|
|
|
|
type: 'warning', |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
BatchReturn.value.dialogReturn = true; //展开弹窗 |
|
|
|
|
}; |
|
|
|
|
const ConfirmReturn = async () => { |
|
|
|
|
const validateAndProcessReturn = async () => { |
|
|
|
|
try { |
|
|
|
|
const selectedObjs = warehouseData.value.filter(obj => |
|
|
|
|
BatchReturn.value.BatchFrom.businessDepartment.includes(obj.value) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
const businessId = selectedObjs.map(item => item.value).join(','); |
|
|
|
|
const businessName = selectedObjs.map(item => item.label).join(','); |
|
|
|
|
const processorList = selectedObjs.map(item => ({ id: item.value, name: item.label })); |
|
|
|
|
const workOrderIds = details.selectionList.map(item => item.id); |
|
|
|
|
|
|
|
|
|
const data = { |
|
|
|
|
businessId, |
|
|
|
|
businessName, |
|
|
|
|
processorList, |
|
|
|
|
reasonReturn: BatchReturn.value.BatchFrom.txt, |
|
|
|
|
workOrderIds, |
|
|
|
|
typesOf: '1', |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
console.log(data, '处理好的值'); |
|
|
|
|
|
|
|
|
|
const _res = await $_batchReturn(data); |
|
|
|
|
const { code, msg } = _res.data; |
|
|
|
|
|
|
|
|
|
if (code === 200) { |
|
|
|
|
ElMessage.success(msg); |
|
|
|
|
BatchReturn.value.dialogReturn = false; //关闭弹窗 |
|
|
|
|
const _Obj = MatchCurrentMenu(); |
|
|
|
|
_Obj.request = true; |
|
|
|
|
PublicDataRequest(TabPermissions.value); |
|
|
|
|
} |
|
|
|
|
} catch (e) { |
|
|
|
|
console.error(e); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
batchReturnForm.value.validate(async valid => { |
|
|
|
|
if (valid) { |
|
|
|
|
ElMessageBox.confirm('是否确认批量打回营业部?', '提示', { |
|
|
|
|
confirmButtonText: '确认', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
type: 'warning', |
|
|
|
|
}) |
|
|
|
|
.then(async () => { |
|
|
|
|
await validateAndProcessReturn(); |
|
|
|
|
}) |
|
|
|
|
.catch(() => {}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
|
@ -1944,16 +2084,17 @@ const ResultConfirmed = async row => {
|
|
|
|
|
.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; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.plAllret { |
|
|
|
|
:deep(.el-select) { |
|
|
|
|
width: 100%; |
|
|
|
|
} |
|
|
|
|
.el-select { |
|
|
|
|
width: 100%; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|