浏览代码

reactor:415 在回访列表增加【修改记录】功能等

zhangchong 1 月之前
父节点
当前提交
985e7279d7

+ 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
 # 业务系统文件上传上传请求地址

+ 2 - 0
src/layout/navBars/breadcrumb/ybTel.vue

@@ -1261,6 +1261,7 @@ const onMessage = async (event: any) => {
 											title: '特殊号码提醒',
 											message: res.result.notes,
 											type: 'info',
+											duration:0
 										});
 									}
 									router.push({
@@ -1354,6 +1355,7 @@ const onMessage = async (event: any) => {
 											title: '特殊号码提醒',
 											message: res.result.notes,
 											type: 'info',
+											duration:0
 										});
 									}
 									router.push({

+ 38 - 32
src/layout/navBars/breadcrumb/zgTel.vue

@@ -1321,11 +1321,37 @@ const stopBusyTime = () => {
 };
 const restFormRef = ref<RefType>(); // 小休表单
 const onBusy = () => {
-	restApplyConfig().then((res) => {
-		if(res.result){
-			// 需要小休审批
-			state.restDialogVisible = true;
-		}else{
+	restApplyConfig()
+		.then((res) => {
+			if (res.result) {
+				// 需要小休审批
+				state.restDialogVisible = true;
+			} else {
+				ElMessageBox.confirm(`确定要小休,是否继续?`, '提示', {
+					confirmButtonText: '确认',
+					cancelButtonText: '取消',
+					type: 'warning',
+					draggable: true,
+					cancelButtonClass: 'default-button',
+					autofocus: false,
+				})
+					.then(() => {
+						const objMsg = {
+							Action: 'ReqAgentBusy',
+							Param: {
+								Extension: m_strUserNo.value,
+							},
+						};
+						// 发送请求
+						e_TelSendMsg(objMsg);
+					})
+					.catch(() => {
+						state.loading = false;
+					});
+			}
+		})
+		.catch((err: any) => {
+			console.log(err);
 			ElMessageBox.confirm(`确定要小休,是否继续?`, '提示', {
 				confirmButtonText: '确认',
 				cancelButtonText: '取消',
@@ -1347,32 +1373,8 @@ const onBusy = () => {
 				.catch(() => {
 					state.loading = false;
 				});
-		}
-	}).catch((err:any) => {
-		console.log(err)
-		ElMessageBox.confirm(`确定要小休,是否继续?`, '提示', {
-			confirmButtonText: '确认',
-			cancelButtonText: '取消',
-			type: 'warning',
-			draggable: true,
-			cancelButtonClass: 'default-button',
-			autofocus: false,
-		})
-			.then(() => {
-				const objMsg = {
-					Action: 'ReqAgentBusy',
-					Param: {
-						Extension: m_strUserNo.value,
-					},
-				};
-				// 发送请求
-				e_TelSendMsg(objMsg);
-			})
-			.catch(() => {
-				state.loading = false;
-			});
-	})
-/*	if (AppConfigInfo.value.isRestApproval) {
+		});
+	/*	if (AppConfigInfo.value.isRestApproval) {
 		// 需要小休审批
 		state.restDialogVisible = true;
 	} else {
@@ -2151,6 +2153,7 @@ const evtCallAlerting = (data: any) => {
 									title: '特殊号码提醒',
 									message: res.result.notes,
 									type: 'info',
+									duration: 0,
 								});
 							}
 							router.push({
@@ -2179,7 +2182,7 @@ const evtCallAlerting = (data: any) => {
 								},
 							});
 						});
-				}else{
+				} else {
 					router.push({
 						name: 'orderAccept',
 						query: {
@@ -2241,6 +2244,7 @@ const evtCallAlerting = (data: any) => {
 								title: '特殊号码提醒',
 								message: res.result.notes,
 								type: 'info',
+								duration: 0,
 							});
 						}
 						router.push({
@@ -2391,6 +2395,7 @@ const evtEvtCallAnswer = (data: any) => {
 										title: '特殊号码提醒',
 										message: res.result.notes,
 										type: 'info',
+										duration: 0,
 									});
 								}
 								router.push({
@@ -2504,6 +2509,7 @@ const evtEvtCallAnswer = (data: any) => {
 							title: '特殊号码提醒',
 							message: res.result.notes,
 							type: 'info',
+							duration: 0,
 						});
 					}
 					router.push({

+ 35 - 11
src/views/early/setting/components/Setting-add.vue

@@ -26,8 +26,8 @@
 				</el-col>
 				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 					<el-form-item label="频率" prop="frequency" :rules="[{ required: true, message: '请选择频率', trigger: 'change' }]">
-						<el-select v-model="state.ruleForm.frequency" placeholder="请选择频率" @change="selectType" clearable>
-							<el-option v-for="item in eCompareType" :value="item.key" :key="item.key" :label="item.value" />
+						<el-select v-model="state.ruleForm.frequency" placeholder="请选择频率" clearable>
+							<el-option v-for="item in eFrequency" :value="item.key" :key="item.key" :label="item.value" />
 						</el-select>
 					</el-form-item>
 				</el-col>
@@ -47,7 +47,7 @@
 							</div>
 						</template>
 						<el-row v-for="(item, index) in state.ruleForm.earlyWarningRules" :key="index" :gutter="10" class="w100 mb20">
-							<el-col :span="7">
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 								<el-form-item
 									label="敏感词"
 									:prop="`earlyWarningRules.${index}.sensitiveWord`"
@@ -58,37 +58,55 @@
 									</el-select-v2>
 								</el-form-item>
 							</el-col>
-							<el-col :span="7">
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 								<el-form-item
 									label="出现次数"
 									:prop="`earlyWarningRules.${index}.compareType`"
 									:rules="[{ required: true, message: '请选择出现次数', trigger: 'change' }]"
 									label-width="80px"
 								>
-									<el-select v-model="item.compareType" placeholder="请选择出现次数" @change="selectType" clearable>
+									<el-select v-model="item.compareType" placeholder="请选择出现次数" clearable>
 										<el-option v-for="item in eCompareType" :value="item.key" :key="item.key" :label="item.value" />
 									</el-select>
 								</el-form-item>
 							</el-col>
-							<el-col :span="7">
+							<el-col :xs="24" :sm="12" :md="12" :lg="4" :xl="4">
 								<el-form-item
 									label=""
 									:prop="`earlyWarningRules.${index}.times`"
 									:rules="[{ required: true, message: '请填写次数', trigger: 'blur' }]"
 									label-width="0px"
 								>
-									<el-input-number v-model="item.times" :min="1" :max="99">
+									<el-input-number v-model="item.times" :min="1" :max="99" :precision="0">
 										<template #suffix>
 											<span>次</span>
 										</template>
 									</el-input-number>
 								</el-form-item>
 							</el-col>
-							<el-col :span="3">
+							<el-col :xs="24" :sm="12" :md="12" :lg="4" :xl="4">
+								<el-form-item
+									label=""
+									:prop="`earlyWarningRules.${index}.sort`"
+									:rules="[{ required: true, message: '请填写排序', trigger: 'blur' }]"
+									label-width="0px"
+								>
+									<el-input-number v-model="item.sort" :min="1" :precision="0">
+									</el-input-number>
+								</el-form-item>
+							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="4" :xl="4">
 								<div class="flex">
-<!--									<el-select v-model="item.compareType">
-										<el-option  v-for="item in eFrequency" :value="item.key" :key="item.key" :label="item.value" />
-									</el-select>-->
+									<el-form-item
+										label=""
+										:prop="`earlyWarningRules.${index}.nextWhere`"
+										:rules="[{ required: true, message: '请选择', trigger: 'change' }]"
+										label-width="0px"
+									>
+										<el-select v-model="item.nextWhere" style="width: 100px;" clearable>
+											<el-option v-for="item in eNextWhere" :value="item.key" :key="item.key" :label="item.value" />
+										</el-select>
+									</el-form-item>
 									<el-button link type="danger" @click="onDelete(index)" v-if="index" class="ml10"><SvgIcon name="ele-Delete" /></el-button>
 								</div>
 							</el-col>
@@ -141,6 +159,8 @@ const state = reactive<any>({
 				sensitiveWord: null,
 				compareType: null,
 				times: null,
+				nextWhere:null,
+				sort:1
 			},
 		], // 预警规则
 		earlyWarningRemark: null, // 预警原因
@@ -164,12 +184,14 @@ const earlyWarningType = ref<EmptyArrayType>([]); // 预警类型
 const eFrequency = ref<EmptyArrayType>([]); // 频率
 const eCompareType = ref<EmptyArrayType>([]); // 比较类型
 const sensitiveWords = ref<EmptyArrayType>([]); // 敏感词
+const eNextWhere = ref<EmptyArrayType>([]); // 下一步
 const queryBaseInfo = () => {
 	getEarlySettingBaseData().then((res) => {
 		earlyWarningLevel.value = res.result.earlyWarningLevel ?? [];
 		earlyWarningType.value = res.result.earlyWarningType ?? [];
 		eFrequency.value = res.result.eFrequency ?? [];
 		eCompareType.value = res.result.eCompareType ?? [];
+		eNextWhere.value = res.result.eNextWhere ?? [];
 		sensitiveWords.value =
 			res.result.sensitiveWords.map((item: any) => {
 				return {
@@ -195,6 +217,7 @@ const onPlus = () => {
 		sensitiveWord: null,
 		compareType: null,
 		times: null,
+		sort:state.ruleForm.earlyWarningRules.length+1
 	});
 };
 // 删除规则
@@ -213,6 +236,7 @@ const close = () => {
 			sensitiveWord: null,
 			compareType: null,
 			times: null,
+			sort:1
 		},
 	];
 };

+ 43 - 14
src/views/early/setting/components/Setting-edit.vue

@@ -26,7 +26,7 @@
 				</el-col>
 				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 					<el-form-item label="频率" prop="frequency" :rules="[{ required: true, message: '请选择频率', trigger: 'change' }]">
-						<el-select v-model="state.ruleForm.frequency" placeholder="请选择频率" @change="selectType" clearable>
+						<el-select v-model="state.ruleForm.frequency" placeholder="请选择频率" clearable>
 							<el-option v-for="item in eFrequency" :value="item.key" :key="item.key" :label="item.value" />
 						</el-select>
 					</el-form-item>
@@ -46,50 +46,67 @@
 								<el-button type="primary" @click="onPlus" link>新增规则<SvgIcon name="ele-Plus" /></el-button>
 							</div>
 						</template>
-						<el-row v-for="(item, index) in state.ruleForm.earlyWarningRules" :key="index" :gutter="10" class="w100 mb10">
-							<el-col :span="7">
+						<el-row v-for="(item, index) in state.ruleForm.earlyWarningRules" :key="index" :gutter="10" class="w100 mb20">
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 								<el-form-item
 									label="敏感词"
 									:prop="`earlyWarningRules.${index}.sensitiveWord`"
 									:rules="[{ required: true, message: '请填写敏感词', trigger: 'change' }]"
 									label-width="70px"
 								>
-									<el-select-v2 v-model="item.sensitiveWord" :options="sensitiveWords" placeholder="请选择敏感词" class="w100" clearable filterable>
+									<el-select-v2 v-model="item.sensitiveWord" :options="sensitiveWords" placeholder="请选择敏感词" clearable filterable>
 									</el-select-v2>
 								</el-form-item>
 							</el-col>
-							<el-col :span="7">
+							<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 								<el-form-item
 									label="出现次数"
 									:prop="`earlyWarningRules.${index}.compareType`"
 									:rules="[{ required: true, message: '请选择出现次数', trigger: 'change' }]"
 									label-width="80px"
 								>
-									<el-select v-model="item.compareType" placeholder="请选择出现次数" @change="selectType" clearable>
+									<el-select v-model="item.compareType" placeholder="请选择出现次数" clearable>
 										<el-option v-for="item in eCompareType" :value="item.key" :key="item.key" :label="item.value" />
 									</el-select>
 								</el-form-item>
 							</el-col>
-							<el-col :span="7">
+							<el-col :xs="24" :sm="12" :md="12" :lg="4" :xl="4">
 								<el-form-item
 									label=""
 									:prop="`earlyWarningRules.${index}.times`"
 									:rules="[{ required: true, message: '请填写次数', trigger: 'blur' }]"
 									label-width="0px"
 								>
-									<el-input-number v-model="item.times" :min="1" :max="99">
+									<el-input-number v-model="item.times" :min="1" :max="99" :precision="0">
 										<template #suffix>
 											<span>次</span>
 										</template>
 									</el-input-number>
 								</el-form-item>
 							</el-col>
-							<el-col :span="3">
+							<el-col :xs="24" :sm="12" :md="12" :lg="4" :xl="4">
+								<el-form-item
+									label=""
+									:prop="`earlyWarningRules.${index}.sort`"
+									:rules="[{ required: true, message: '请填写排序', trigger: 'blur' }]"
+									label-width="0px"
+								>
+									<el-input-number v-model="item.sort" :min="1" :precision="0">
+									</el-input-number>
+								</el-form-item>
+							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="4" :xl="4">
 								<div class="flex">
-									<el-select v-model="item.compareType" v-if="index">
-										<el-option value="1" label="且" />
-										<el-option value="2" label="或" />
-									</el-select>
+									<el-form-item
+										label=""
+										:prop="`earlyWarningRules.${index}.nextWhere`"
+										:rules="[{ required: true, message: '请选择', trigger: 'change' }]"
+										label-width="0px"
+									>
+										<el-select v-model="item.nextWhere" style="width: 100px;" clearable>
+											<el-option v-for="item in eNextWhere" :value="item.key" :key="item.key" :label="item.value" />
+										</el-select>
+									</el-form-item>
 									<el-button link type="danger" @click="onDelete(index)" v-if="index" class="ml10"><SvgIcon name="ele-Delete" /></el-button>
 								</div>
 							</el-col>
@@ -137,7 +154,15 @@ const state = reactive<any>({
 		earlyWarningTypeValue: null, // 预警类型
 		frequency: null, // 频率
 		isEnable:true, // 是否启用
-		earlyWarningRules: [], // 预警规则
+		earlyWarningRules: [
+			{
+				sensitiveWord: null,
+				compareType: null,
+				times: null,
+				nextWhere:null,
+				sort:1
+			},
+		], // 预警规则
 		earlyWarningRemark: null, // 预警原因
 	},
 });
@@ -163,12 +188,14 @@ const earlyWarningType = ref<EmptyArrayType>([]); // 预警类型
 const eFrequency = ref<EmptyArrayType>([]); // 频率
 const eCompareType = ref<EmptyArrayType>([]); // 比较类型
 const sensitiveWords = ref<EmptyArrayType>([]); // 敏感词
+const eNextWhere = ref<EmptyArrayType>([]); // 下一步
 const queryBaseInfo = () => {
 	getEarlySettingBaseData().then((res) => {
 		earlyWarningLevel.value = res.result.earlyWarningLevel ?? [];
 		earlyWarningType.value = res.result.earlyWarningType ?? [];
 		eFrequency.value = res.result.eFrequency ?? [];
 		eCompareType.value = res.result.eCompareType ?? [];
+		eNextWhere.value = res.result.eNextWhere ?? [];
 		sensitiveWords.value =
 			res.result.sensitiveWords.map((item: any) => {
 				return {
@@ -194,6 +221,7 @@ const onPlus = () => {
 		sensitiveWord: null,
 		compareType: null,
 		times: null,
+		sort:state.ruleForm.earlyWarningRules.length+1
 	});
 };
 // 删除规则
@@ -212,6 +240,7 @@ const close = () => {
 			sensitiveWord: null,
 			compareType: null,
 			times: null,
+			sort:1
 		},
 	];
 };

+ 17 - 6
src/views/early/setting/index.vue

@@ -3,7 +3,13 @@
 		<div class="layout-padding-auto layout-padding-view pd20">
 			<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="state.loading">
 				<el-form-item label="预警名称" prop="EarlyWarningName">
-					<el-input v-model="state.queryParams.EarlyWarningName" placeholder="请填写预警名称" clearable @keyup.enter="handleQuery" class="keyword-input" />
+					<el-input
+						v-model="state.queryParams.EarlyWarningName"
+						placeholder="请填写预警名称"
+						clearable
+						@keyup.enter="handleQuery"
+						class="keyword-input"
+					/>
 				</el-form-item>
 				<el-form-item label="预警级别" prop="EarlyWarningLevelValue">
 					<el-select v-model="state.queryParams.EarlyWarningLevelValue" placeholder="请选择预警级别" @change="handleQuery">
@@ -12,8 +18,8 @@
 				</el-form-item>
 				<el-form-item label="状态" prop="IsEnable">
 					<el-select v-model="state.queryParams.IsEnable" placeholder="请选择状态" @change="handleQuery" clearable>
-						<el-option :value="true" label="启用"/>
-						<el-option :value="false" label="禁用"/>
+						<el-option :value="true" label="启用" />
+						<el-option :value="false" label="禁用" />
 					</el-select>
 				</el-form-item>
 				<el-form-item>
@@ -55,7 +61,12 @@
 					<vxe-column field="earlyWarningTypeName" title="预警类型"></vxe-column>
 					<vxe-column field="frequencyText" title="频率"></vxe-column>
 					<vxe-column field="earlyWarningRemark" title="预警原因" min-width="200"></vxe-column>>
-					<vxe-column field="isEnable" title="状态"></vxe-column>
+					<vxe-column field="isEnable" title="状态">
+						<template #default="{ row }">
+							<el-tag v-if="row.isEnable" type="success">启用</el-tag>
+							<el-tag v-else type="danger">禁用</el-tag>
+						</template>
+					</vxe-column>
 					<vxe-column field="creationTime" title="添加时间" width="160">
 						<template #default="{ row }">
 							{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}
@@ -102,8 +113,8 @@ const state = reactive({
 		PageIndex: 1,
 		PageSize: 20,
 		EarlyWarningName: null, // 预警名称
-		EarlyWarningLevelValue:null, // 预警级别
-		IsEnable:null, // 是否启用
+		EarlyWarningLevelValue: null, // 预警级别
+		IsEnable: null, // 是否启用
 		SortField: null,
 		SortRule: null,
 	},