zhangchong 1 сар өмнө
parent
commit
15e565591a

+ 1 - 1
.env.development

@@ -3,7 +3,7 @@ VITE_MODE_NAME=development
 # 防止部署多套系统到同一域名不同目录时,变量共用的问题 设置不同的前缀
 VITE_STORAGE_NAME=dev
 # 业务系统基础请求地址
-VITE_API_URL=http://110.188.24.28:50100
+VITE_API_URL=http://110.188.24.28:50300
 # 业务系统socket请求地址
 VITE_API_SOCKET_URL=http://110.188.24.28:50100/hubs/hotline
 # 业务系统文件上传上传请求地址

+ 15 - 8
src/components/OrderDetail/index.vue

@@ -220,7 +220,7 @@
 								<el-form-item label="重点关注事件"> {{ state.ruleForm.focusOnEventsName }} </el-form-item>
 							</el-col>
 							<template v-if="['YiBin'].includes(themeConfig.appScope) && AppConfigInfo.isEarly">
-								<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
+								<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6"  v-if="earlyResponse?.orderEarlyInfo?.length">
 									<el-form-item label="预警词语">
 										<template #label>
 											<p class="flex-center-align">
@@ -230,20 +230,26 @@
 												</el-tooltip>
 											</p>
 										</template>
-										<div v-for="item in earlyResponse.orderEarlyInfo">
+										<div v-for="item in earlyResponse?.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="8" :lg="6" :xl="6" v-if="earlyResponse.orderEarly">
-									<el-form-item label="座席预警预判">
-										{{ earlyResponse.orderEarly.seatEarlyWarningTypeName }} ,{{ earlyResponse.orderEarly.seatEarlyWarningLevelName }}
+								<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="earlyResponse?.orderEarly?.seatEarlyWarningTypeName">
+									<el-form-item label="坐席预警判断">
+										{{ earlyResponse.orderEarly?.seatEarlyWarningTypeName }} ,{{ earlyResponse.orderEarly?.seatEarlyWarningLevelName }}
 									</el-form-item>
 								</el-col>
-								<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-									<el-form-item label="派单组预警预判" label-width="110px"> </el-form-item>
+								<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6"  v-if="earlyResponse?.orderEarly?.dispatchEarlyWarning?.length">
+									<el-form-item label="派单组预警预判" label-width="110px">
+										<div v-for="item in earlyResponse?.orderEarly?.dispatchEarlyWarning">
+											<p>
+												{{ item.earlyWarningName }} ({{ item.earlyWarningTypeName }} ,{{ item.earlyWarningLevelName }})
+											</p>
+										</div>
+									</el-form-item>
 								</el-col>
 							</template>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@@ -909,7 +915,7 @@ const prefixOptionsAdd = computed(() => {
 });
 // 查看工单详情
 const earlyResponse = ref<EmptyObjectType>({
-	orderEarlyInfo: [],
+
 });
 const getOrderDetail = async (id: string) => {
 	state.loading = true;
@@ -1182,6 +1188,7 @@ const onSubmit = (val: string, annexName: string = '办理附件', classify: str
 			inputPlaceholder,
 			annexName,
 			classify,
+			earlyResponse: earlyResponse.value,
 		},
 	};
 	const zgLzActions = ['工单办理', '工单代办', '工单退回'];

+ 85 - 41
src/components/ProcessAudit/index.vue

@@ -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(() => {

+ 1 - 2
src/views/todo/seats/accept/ybAccept.vue

@@ -406,7 +406,7 @@
 									</el-row>
 								</el-col>
 								<!-- 宜宾特殊需求,可配置开关 是否开启预警 -->
-								<template v-if="AppConfigInfo.isEarly">
+								<template v-if="AppConfigInfo.isEarly && !state.ruleForm.no">
 									<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
 										<el-form-item
 											label="预警类型"
@@ -767,7 +767,6 @@ const chooseHotSpot = (val: any, node: any, externalArr: any) => {
 	state.ruleForm.hotspotExternal = externalArr?.join(',') ?? ''; // 热点分类默认展开项
 	rightActive.value = 'knowledge';
 	knowledgeRef.value.querySearch(state.ruleForm.hotspotName);
-	console.log(state.ruleForm.hotspotSpliceName,state.ruleForm.hotspotName,state.ruleForm.hotspotExternal)
 };
 // 获取事发地址
 const areaRef = ref<RefType>();