|
@@ -18,7 +18,7 @@
|
|
|
<el-step title="业务表单" />
|
|
|
<el-step title="流程表单" />
|
|
|
</el-steps>
|
|
|
-<!-- {{ seatTopaidan ? '话务部到派单组' : '' }}
|
|
|
+ <!-- {{ seatTopaidan ? '话务部到派单组' : '' }}
|
|
|
{{ seatToOrgOne ? '话务部到一级部门' : '' }}
|
|
|
{{ paidanToOrgOne ? '派单组到一级部门' : '' }}-->
|
|
|
<div v-show="activeStep === 0" v-loading="state.loading">
|
|
@@ -113,7 +113,7 @@
|
|
|
<el-form-item label="申请部门"> {{ userInfos.orgName }} </el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <el-form-item label="申请时间"> {{ formatDate(Date(),'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
|
|
|
+ <el-form-item label="申请时间"> {{ formatDate(Date(), 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
<el-form-item label="申请类型" prop="type" :rules="[{ required: true, message: '请选择申请类型', trigger: 'change' }]">
|
|
@@ -181,7 +181,14 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
- <el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" v-show="activeStep === 1" v-loading="state.loading" :disabled="state.loading">
|
|
|
+ <el-form
|
|
|
+ :model="state.ruleForm"
|
|
|
+ label-width="110px"
|
|
|
+ ref="ruleFormRef"
|
|
|
+ v-show="activeStep === 1"
|
|
|
+ v-loading="state.loading"
|
|
|
+ :disabled="state.loading"
|
|
|
+ >
|
|
|
<slot name="header"></slot>
|
|
|
<el-row :gutter="10">
|
|
|
<!-- 审批流程 -->
|
|
@@ -201,7 +208,7 @@
|
|
|
<el-select v-model="state.ruleForm.nextStepCode" placeholder="请选择下一环节" class="w100" @change="selectNextStep">
|
|
|
<el-option v-for="item in state.nextStepOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
</el-select>
|
|
|
-<!-- <p class="flex-center-align color-danger" v-if="showFastSendOrder">
|
|
|
+ <!-- <p class="flex-center-align color-danger" v-if="showFastSendOrder">
|
|
|
当前推荐派单办理对象:{{ fastStepName }} <el-button type="primary" link class="ml4" @click="fastSendOrder">快捷派单</el-button>
|
|
|
</p>-->
|
|
|
</el-form-item>
|
|
@@ -289,7 +296,7 @@
|
|
|
<el-select v-model="state.ruleForm.nextStepCode" placeholder="请选择下一环节" class="w100" @change="selectNextStep">
|
|
|
<el-option v-for="item in state.nextStepOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
</el-select>
|
|
|
-<!-- <p class="flex-center-align color-danger" v-if="showFastSendOrder">
|
|
|
+ <!-- <p class="flex-center-align color-danger" v-if="showFastSendOrder">
|
|
|
当前推荐派单办理对象:{{ fastStepName }} <el-button type="primary" link class="ml4" @click="fastSendOrder">快捷派单</el-button>
|
|
|
</p>-->
|
|
|
</el-form-item>
|
|
@@ -367,25 +374,25 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12" v-if="state.ruleForm.orderAssignMode === 0">
|
|
|
- <el-form-item label="接办部门" prop="nextHandlers" :rules="[{ required: true, message: '请选择接办部门', trigger: 'change' }]">
|
|
|
- <!-- <el-select v-model="state.ruleForm.paidanObj" placeholder="请选择接办部门" class="w100" filterable multiple>
|
|
|
+ <el-form-item label="接办部门" prop="nextHandlers" :rules="[{ required: true, message: '请选择接办部门', trigger: 'change' }]">
|
|
|
+ <!-- <el-select v-model="state.ruleForm.paidanObj" placeholder="请选择接办部门" class="w100" filterable multiple>
|
|
|
<el-option v-for="item in state.paidanObjOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
</el-select>-->
|
|
|
- <el-select-v2
|
|
|
- v-model="state.ruleForm.nextHandlers"
|
|
|
- :options="state.handlerOptions"
|
|
|
- placeholder="请选择接办部门"
|
|
|
- class="w100"
|
|
|
- multiple
|
|
|
- clearable
|
|
|
- collapse-tags
|
|
|
- collapse-tags-tooltip
|
|
|
- filterable
|
|
|
- value-key="key"
|
|
|
- @change="selectHandlers"
|
|
|
- :multiple-limit="multipleLimit"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
+ <el-select-v2
|
|
|
+ v-model="state.ruleForm.nextHandlers"
|
|
|
+ :options="state.handlerOptions"
|
|
|
+ placeholder="请选择接办部门"
|
|
|
+ class="w100"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ filterable
|
|
|
+ value-key="key"
|
|
|
+ @change="selectHandlers"
|
|
|
+ :multiple-limit="multipleLimit"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24" v-if="state.ruleForm.orderAssignMode === 1">
|
|
|
<el-row class="w100" :gutter="10">
|
|
@@ -572,25 +579,58 @@
|
|
|
</el-col>
|
|
|
</template>
|
|
|
</template>
|
|
|
- <!-- 在派单组并且是开启了预警管理 -->
|
|
|
- <template v-if="AppConfigInfo.isEarly && isPaidan">
|
|
|
- <p class="border-title mb10">预警信息</p>
|
|
|
+ <!-- 在派单组并且是开启了预警管理并且是有预警信息 -->
|
|
|
+ <template v-if="AppConfigInfo.isEarly && isPaidan && earlyResponseData?.orderEarlyInfo?.length">
|
|
|
+ <el-col>
|
|
|
+ <p class="border-title mb10">预警信息</p>
|
|
|
+ </el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
<el-form-item label="预警词语">
|
|
|
-
|
|
|
+ <template #label>
|
|
|
+ <p class="flex-center-align">
|
|
|
+ 预警词语
|
|
|
+ <el-tooltip content="次数是指工单内含有预警词语的工单数量" placement="top-start" trigger="hover">
|
|
|
+ <SvgIcon name="ele-QuestionFilled" class="ml3"></SvgIcon>
|
|
|
+ </el-tooltip>
|
|
|
+ </p>
|
|
|
+ </template>
|
|
|
+ <div v-for="item in earlyResponseData?.orderEarlyInfo">
|
|
|
+ <p>
|
|
|
+ {{ item.keyWord }} (<span>近一周:{{ item.weekNum }}次</span> <span>近一个月:{{ item.monthNum }}次</span>)
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="earlyResponseData?.orderEarly?.seatEarlyWarningTypeName">
|
|
|
<el-form-item label="坐席预警判断">
|
|
|
-
|
|
|
+ {{ earlyResponseData.orderEarly?.seatEarlyWarningTypeName }} ,{{ earlyResponseData.orderEarly?.seatEarlyWarningLevelName }}
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-else> </el-col>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <el-form-item label="预警选择" prop="nextMainHandler" :rules="[{ required: false, message: '请选择预警选择', trigger: 'change' }]">
|
|
|
- <el-select v-model="state.ruleForm.nextMainHandler" placeholder="请选择主办" filterable style="width: 240px">
|
|
|
- <el-option v-for="item in state.handlerMainOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
+ <el-form-item label="预警选择" prop="dispatchEarlyWarning" :rules="[{ required: false, message: '请选择预警选择', trigger: 'change' }]">
|
|
|
+ <el-select
|
|
|
+ v-model="state.ruleForm.dispatchEarlyWarning"
|
|
|
+ placeholder="请选择预警选择"
|
|
|
+ filterable
|
|
|
+ value-key="id"
|
|
|
+ multiple
|
|
|
+ collapse-tags
|
|
|
+ clearable
|
|
|
+ collapse-tags-tooltip
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in earlyResponseData?.orderEarly?.canChooseEarlyWarning"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.earlyWarningName"
|
|
|
+ :value="item"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
- <el-text type="danger">已启动自动预警,选择预警名称</el-text>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="earlyResponseData?.orderEarly?.canChooseEarlyWarning?.length">
|
|
|
+ <el-form-item label-width="10px">
|
|
|
+ <el-text type="danger" tag="b">已启动自动预警,选择预警名称</el-text>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</template>
|
|
@@ -687,6 +727,7 @@ const state = reactive<any>({
|
|
|
stepId: null, // 步骤id
|
|
|
// isTransferHandle:false, // 是否转办
|
|
|
orderAssignMode: 0, // 派单类型默认逐级派单
|
|
|
+ dispatchEarlyWarning: [], // 预警信息
|
|
|
},
|
|
|
delayForm: {
|
|
|
//延期申请表单
|
|
@@ -736,6 +777,8 @@ const showTempSave = computed(() => {
|
|
|
const timeType = ref<EmptyArrayType>([]); // 延期申请单位
|
|
|
const screenTypeOptions = ref<EmptyArrayType>([]); // 甄别类型
|
|
|
const screenType = ref(null); // 甄别类型 自贡甄别特殊需求
|
|
|
+const earlyResponseData = ref<EmptyObjectType>({
|
|
|
+}); // 预警信息
|
|
|
// 打开弹窗
|
|
|
const openDialog = async (val: any) => {
|
|
|
console.log(val);
|
|
@@ -752,12 +795,15 @@ const openDialog = async (val: any) => {
|
|
|
state.ruleForm.workflowId = state.workflowId = id ?? ''; // 流程id
|
|
|
state.processType = processType ?? '办理流程'; // 业务类型
|
|
|
state.orderDetail = orderDetail ?? {}; // 工单详情
|
|
|
- const { dialogTitle, inputPlaceholder, annexName, classify } = extra ?? {};
|
|
|
+ const { dialogTitle, inputPlaceholder, annexName, classify, earlyResponse } = extra ?? {};
|
|
|
state.dialogTitle = dialogTitle ?? '提交流程'; // 流程标题
|
|
|
state.annexName = annexName ?? '办理附件'; // 附件标题
|
|
|
state.classify = classify ?? '办理上传'; // 附件分类
|
|
|
state.inputPlaceholder = inputPlaceholder ?? '办理意见'; // 意见提示
|
|
|
screenType.value = extra.screenType;
|
|
|
+ if (earlyResponse) {
|
|
|
+ earlyResponseData.value = earlyResponse;
|
|
|
+ }
|
|
|
switch (state.processType) {
|
|
|
case '工单受理': //开始流程
|
|
|
const [orderStartWorkflowResponse] = await Promise.all([orderFlowParams(orderDetail.id)]); //获取开启流程参数
|
|
@@ -1037,7 +1083,7 @@ const countersignDisabled = computed(() => {
|
|
|
});
|
|
|
// 是否发起会签
|
|
|
const changeStartCountersign = (val: boolean) => {
|
|
|
-/* if (!val) {
|
|
|
+ /* if (!val) {
|
|
|
// 如果不能会签清空办理对象
|
|
|
state.ruleForm.nextHandlers = [];
|
|
|
ruleFormRef.value?.resetFields('nextHandlers');
|
|
@@ -1309,8 +1355,6 @@ const selectOrgLevelThree = (val: any) => {
|
|
|
};
|
|
|
const selectOrgLevelThreeHandler = () => {};
|
|
|
|
|
|
-
|
|
|
-
|
|
|
// 设置抽屉
|
|
|
const dialogRef = ref<RefType>();
|
|
|
const mouseup = () => {
|
|
@@ -1441,8 +1485,8 @@ const onSubmit = (formEl: FormInstance | undefined) => {
|
|
|
switch (state.processType) {
|
|
|
case '工单受理':
|
|
|
const request = {
|
|
|
- data: { orderId: state.orderDetail.id, ...submitObj,crossSteps },
|
|
|
- workflow: { ...submitObj, files: handleFiles.value,currentTag:currentParams.value.currentTag },
|
|
|
+ data: { orderId: state.orderDetail.id, ...submitObj, crossSteps },
|
|
|
+ workflow: { ...submitObj, files: handleFiles.value, currentTag: currentParams.value.currentTag },
|
|
|
};
|
|
|
orderStartFlow(request)
|
|
|
.then(() => {
|
|
@@ -1634,7 +1678,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
|
|
|
});
|
|
|
break;
|
|
|
case '工单退回':
|
|
|
- orderPrevious({ ...submitObj, files: handleFiles.value,orderId: state.orderDetail.id })
|
|
|
+ orderPrevious({ ...submitObj, files: handleFiles.value, orderId: state.orderDetail.id })
|
|
|
.then(() => {
|
|
|
afterSubmit('orderProcessSuccess', true, '退回申请成功');
|
|
|
})
|
|
@@ -1646,7 +1690,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
|
|
|
case '工单代办': // 工单代办流程
|
|
|
const requestHandle = {
|
|
|
data: { orderId: state.orderDetail.id, ...submitObj, crossSteps },
|
|
|
- workflow: { ...submitObj, files: handleFiles.value,currentTag:currentParams.value.currentTag },
|
|
|
+ workflow: { ...submitObj, files: handleFiles.value, currentTag: currentParams.value.currentTag },
|
|
|
};
|
|
|
orderHandle(requestHandle)
|
|
|
.then(() => {
|
|
@@ -1751,7 +1795,7 @@ const onSubmit = (formEl: FormInstance | undefined) => {
|
|
|
default: // 默认工单办理
|
|
|
const requestDefault = {
|
|
|
data: { orderId: state.orderDetail.id, ...submitObj, crossSteps },
|
|
|
- workflow: { ...submitObj, files: handleFiles.value,currentTag:currentParams.value.currentTag },
|
|
|
+ workflow: { ...submitObj, files: handleFiles.value, currentTag: currentParams.value.currentTag },
|
|
|
};
|
|
|
orderHandle(requestDefault)
|
|
|
.then(() => {
|