Procházet zdrojové kódy

reactor:二次办理审批新增附件展示和下载;智能化测试地址调整;

zhangchong před 11 měsíci
rodič
revize
585ac7a0c7

+ 2 - 2
.env.development

@@ -29,10 +29,10 @@ VITE_AMAP_KEY=83f51df235e4008e4eaf515cff63785c
 VITE_CALLCENTER_SOCKET_URL=ws://222.213.23.229:29003/ola_socket
 
 # 智能客服登录地址
-VITE_VOICE_ASSISTANT_API_URL=http://182.151.41.101:19081
+VITE_VOICE_ASSISTANT_API_URL=http://118.121.59.30:19081
 
 # 智能客服socket地址
-VITE_VOICE_ASSISTANT_SOCKET_URL=ws://182.151.41.101:19005
+VITE_VOICE_ASSISTANT_SOCKET_URL=ws://118.121.59.30:19005
 
 # 录音播放地址前缀
 VITE_RECORD_PREFIX=http://222.213.23.229:10085

+ 2 - 2
.env.production

@@ -29,10 +29,10 @@ VITE_AMAP_KEY=83f51df235e4008e4eaf515cff63785c
 VITE_CALLCENTER_SOCKET_URL=ws://222.213.23.229:29003/ola_socket
 
 # 智能客服登录地址
-VITE_VOICE_ASSISTANT_API_URL=http://182.151.41.101:19081
+VITE_VOICE_ASSISTANT_API_URL=http://118.121.59.30:19081
 
 # 智能客服socket地址
-VITE_VOICE_ASSISTANT_SOCKET_URL=ws://182.151.41.101:19005
+VITE_VOICE_ASSISTANT_SOCKET_URL=ws://118.121.59.30:19005
 
 # 录音播放地址前缀
 VITE_RECORD_PREFIX=http://222.213.23.229:10085

+ 2 - 2
.env.st

@@ -29,10 +29,10 @@ VITE_AMAP_KEY=83f51df235e4008e4eaf515cff63785c
 VITE_CALLCENTER_SOCKET_URL=ws://222.213.23.229:29003/ola_socket
 
 # 智能客服登录地址
-VITE_VOICE_ASSISTANT_API_URL=http://182.151.41.101:19081
+VITE_VOICE_ASSISTANT_API_URL=http://118.121.59.30:19081
 
 # 智能客服socket地址
-VITE_VOICE_ASSISTANT_SOCKET_URL=ws://182.151.41.101:19005
+VITE_VOICE_ASSISTANT_SOCKET_URL=ws://118.121.59.30:19005
 
 # 录音播放地址前缀
 VITE_RECORD_PREFIX=http://222.213.23.229:10085

+ 17 - 0
src/api/todo/voiceAssistant.ts

@@ -35,3 +35,20 @@ export const voiceAssistantContent = (callId: string) => {
 		}
 	);
 };
+/**
+ * @description 查询捷通华声通话记录
+ * @param {object} data
+ */
+export const jthsRecord = (data: object) => {
+	return request(
+		{
+			url: `/service/records`,
+			method: 'post',
+			data,
+			baseURL: import.meta.env.VITE_VOICE_ASSISTANT_API_URL,
+		},
+		{
+			error_message_show: false,
+		}
+	);
+};

+ 1 - 1
src/components/Editor/index.vue

@@ -31,7 +31,7 @@ const props = defineProps({
 	// 内容框默认 placeholder
 	placeholder: {
 		type: String,
-		default: () => '请输入内容...',
+		default: () => '请填写内容...',
 	},
 	// https://www.wangeditor.com/v5/getting-started.html#mode-%E6%A8%A1%E5%BC%8F
 	// 模式,可选 <default|simple>,默认 default

+ 7 - 7
src/components/LogicFlow/PropertySetting/start.vue

@@ -1,11 +1,11 @@
 <template>
 	<div class="form">
 		<el-form :model="form" label-width="130px" ref="ruleFormRef">
-			<el-form-item label="节点名称" prop="name" :rules="[{ required: true, message: '请输入节点名称', trigger: 'blur' }]">
-				<el-input v-model="form.name" placeholder="请输入节点名称" clearable></el-input>
+			<el-form-item label="节点名称" prop="name" :rules="[{ required: true, message: '请填写节点名称', trigger: 'blur' }]">
+				<el-input v-model="form.name" placeholder="请填写节点名称" clearable></el-input>
 			</el-form-item>
-			<el-form-item label="节点编码" prop="stepType" :rules="[{ required: true, message: '请输入节点编码', trigger: 'blur' }]">
-				<el-input v-model="form.code" disabled placeholder="请输入节点编码" clearable></el-input>
+			<el-form-item label="节点编码" prop="stepType" :rules="[{ required: true, message: '请填写节点编码', trigger: 'blur' }]">
+				<el-input v-model="form.code" disabled placeholder="请填写节点编码" clearable></el-input>
 			</el-form-item>
 			<el-form-item label="节点类型" prop="stepTypeName" :rules="[{ required: true, message: '请选择节点类型', trigger: 'change' }]">
 				<el-input v-model="form.stepTypeName" disabled></el-input>
@@ -54,7 +54,7 @@
 					remote
 					class="w100"
 					reserve-keyword
-					placeholder="请输入用户名称"
+					placeholder="请填写用户名称"
 					remote-show-suffix
 					:remote-method="remoteMethod"
 					:loading="loading"
@@ -137,8 +137,8 @@
 					<el-option v-for="item in baseData.dynamicStrategyOptions" :key="item.key" :label="item.value" :value="item.key" />
 				</el-select>
 			</el-form-item>
-			<el-form-item label="标识" prop="tag" :rules="[{ required: false, message: '请输入标识', trigger: 'blur' }]">
-				<el-input v-model="form.tag" placeholder="请输入标识" type="textarea" :autosize="{ minRows: 4, maxRows: 8 }"></el-input>
+			<el-form-item label="标识" prop="tag" :rules="[{ required: false, message: '请填写标识', trigger: 'blur' }]">
+				<el-input v-model="form.tag" placeholder="请填写标识" type="textarea" :autosize="{ minRows: 4, maxRows: 8 }"></el-input>
 			</el-form-item>
 		</el-form>
 	</div>

+ 7 - 7
src/components/LogicFlow/PropertySetting/task.vue

@@ -1,11 +1,11 @@
 <template>
 	<div class="form">
 		<el-form :model="form" label-width="130px" ref="ruleFormRef">
-			<el-form-item label="节点名称" prop="name" :rules="[{ required: true, message: '请输入节点名称', trigger: 'blur' }]">
-				<el-input v-model="form.name" placeholder="请输入节点名称" clearable></el-input>
+			<el-form-item label="节点名称" prop="name" :rules="[{ required: true, message: '请填写节点名称', trigger: 'blur' }]">
+				<el-input v-model="form.name" placeholder="请填写节点名称" clearable></el-input>
 			</el-form-item>
-			<el-form-item label="节点编码" prop="stepType" :rules="[{ required: true, message: '请输入节点编码', trigger: 'blur' }]">
-				<el-input v-model="form.code" disabled placeholder="请输入节点编码" clearable></el-input>
+			<el-form-item label="节点编码" prop="stepType" :rules="[{ required: true, message: '请填写节点编码', trigger: 'blur' }]">
+				<el-input v-model="form.code" disabled placeholder="请填写节点编码" clearable></el-input>
 			</el-form-item>
 			<el-form-item label="节点类型" prop="stepType" :rules="[{ required: true, message: '请选择节点类型', trigger: 'change' }]">
 				<el-select v-model="form.stepType" class="w100" placeholder="请选择节点类型">
@@ -64,7 +64,7 @@
 					remote
 					class="w100"
 					reserve-keyword
-					placeholder="请输入用户名称"
+					placeholder="请填写用户名称"
 					remote-show-suffix
 					:remote-method="remoteMethod"
 					:loading="loading"
@@ -145,8 +145,8 @@
 					<el-option v-for="item in baseData.dynamicStrategyOptions" :key="item.key" :label="item.value" :value="item.key" />
 				</el-select>
 			</el-form-item>
-			<el-form-item label="标识" prop="tag" :rules="[{ required: false, message: '请输入标识', trigger: 'blur' }]">
-				<el-input v-model="form.tag" placeholder="请输入标识" type="textarea" :autosize="{ minRows: 4, maxRows: 8 }"></el-input>
+			<el-form-item label="标识" prop="tag" :rules="[{ required: false, message: '请填写标识', trigger: 'blur' }]">
+				<el-input v-model="form.tag" placeholder="请填写标识" type="textarea" :autosize="{ minRows: 4, maxRows: 8 }"></el-input>
 			</el-form-item>
 		</el-form>
 	</div>

+ 6 - 6
src/components/LogicFlow/index.vue

@@ -5,13 +5,13 @@
 			<el-form :model="form" label-width="80px" ref="ruleFormRef">
 				<el-row :gutter="100">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<el-form-item label="模板名称" prop="name" :rules="[{ required: true, message: '请输入模板名称', trigger: 'blur' }]">
-							<el-input v-model="form.name" placeholder="请输入模板名称" clearable></el-input>
+						<el-form-item label="模板名称" prop="name" :rules="[{ required: true, message: '请填写模板名称', trigger: 'blur' }]">
+							<el-input v-model="form.name" placeholder="请填写模板名称" clearable></el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<el-form-item label="模板编码" prop="code" :rules="[{ required: true, message: '请输入模板编码', trigger: 'blur' }]">
-							<el-input v-model="form.code" placeholder="请输入模板编码" clearable></el-input>
+						<el-form-item label="模板编码" prop="code" :rules="[{ required: true, message: '请填写模板编码', trigger: 'blur' }]">
+							<el-input v-model="form.code" placeholder="请填写模板编码" clearable></el-input>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -27,8 +27,8 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<el-form-item label="模板描述" prop="description" :rules="[{ required: false, message: '请输入模板描述', trigger: 'blur' }]">
-							<el-input v-model="form.description" placeholder="请输入模板描述" clearable></el-input>
+						<el-form-item label="模板描述" prop="description" :rules="[{ required: false, message: '请填写模板描述', trigger: 'blur' }]">
+							<el-input v-model="form.description" placeholder="请填写模板描述" clearable></el-input>
 						</el-form-item>
 					</el-col>
 				</el-row>

+ 5 - 3
src/components/ProTable/index.vue

@@ -76,7 +76,7 @@
 		</el-table>
 		<!-- 分页组件 -->
 		<slot name="pagination">
-			<PaginationEl v-if="pagination" @pagination="onRefresh" :total="total" v-model:current-page="pageIndex" v-model:page-size="pageSize" />
+			<PaginationEl v-if="pagination" @pagination="onRefresh" :total="total" v-model:current-page="pageIndex" v-model:page-size="pageSize" :layout="paginationLayout"/>
 		</slot>
 	</div>
 	<!-- 列设置 -->
@@ -91,8 +91,6 @@ import { ColumnProps, TypeProps } from '@/components/ProTable/interface';
 import PaginationEl from './components/Pagination.vue';
 import ColSetting from './components/ColSetting.vue';
 import TableColumn from './components/TableColumn.vue';
-import { handleProp } from '@/utils/tools';
-import { deleteCommon } from '@/api/auxiliary/advice';
 
 // 接受父组件参数,配置默认值
 const props = defineProps({
@@ -149,6 +147,10 @@ const props = defineProps({
 		type: String,
 		default: '',
 	},
+  paginationLayout: {
+    type: String,
+    default: 'total, prev, pager, next, jumper'
+  }
 });
 const emit = defineEmits([
 	'dargSort',

+ 3 - 3
src/components/ProcessAudit/index.vue

@@ -38,7 +38,7 @@
 						<el-form-item label="当前期满时间"> {{ formatDate(state.orderDetail.expiredTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" v-loading="state.loading">
-						<el-form-item label="延期申请数量" prop="timeLimitCount" :rules="[{ required: true, message: '请输入延期申请数量', trigger: 'blur' }]">
+						<el-form-item label="延期申请数量" prop="timeLimitCount" :rules="[{ required: true, message: '请填写延期申请数量', trigger: 'blur' }]">
 							<el-row :gutter="10">
 								<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 									<el-input-number
@@ -277,7 +277,7 @@
 					<!-- 工单办理专有参数 -->
 					<template v-if="flowDirection">
 						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-							<el-form-item label="办理时限" prop="timeLimit" :rules="[{ required: true, message: '请输入办理时限', trigger: 'blur' }]">
+							<el-form-item label="办理时限" prop="timeLimit" :rules="[{ required: true, message: '请填写办理时限', trigger: 'blur' }]">
 								<el-row :gutter="10">
 									<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 										<el-input-number
@@ -335,7 +335,7 @@
 							/>
 						</el-form-item>
 					</el-col>
-					<!--  汇总节点需要输入 并且是工单办理 -->
+					<!--  汇总节点需要填写 并且是工单办理 -->
 					<template v-if="inputRealHandler">
 						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 							<el-form-item label="经办人" prop="realHandlerName" :rules="[{ required: false, message: '请填写经办人', trigger: 'blur' }]">

+ 2 - 2
src/layout/lockScreen/index.vue

@@ -30,7 +30,7 @@
 						<div class="layout-lock-screen-login-box-name">{{ userInfos.name }}</div>
 						<div class="layout-lock-screen-login-box-value">
 							<el-input
-								placeholder="请输入密码"
+								placeholder="请填写密码"
 								ref="layoutLockScreenInputRef"
 								v-model="state.lockScreenPassword"
 								@keyup.enter.native.stop="onLockScreenSubmit()"
@@ -176,7 +176,7 @@ const setLocalThemeConfig = () => {
 	themeConfig.value.isDrawer = false;
 	Local.set('themeConfig', themeConfig.value);
 };
-// 密码输入点击事件
+// 密码填写点击事件
 const onLockScreenSubmit = () => {
 	if (Session.get('lockPwd') != state.lockScreenPassword) {
 		ElMessage({

+ 11 - 10
src/layout/navBars/breadcrumb/telControl.vue

@@ -285,14 +285,14 @@
 					class="w100"
 				/>
 			</el-form-item>
-			<!-- 是否需要输入分机密码 -->
+			<!-- 是否需要填写分机密码 -->
 			<el-form-item
 				label="分机密码"
 				prop="password"
-				:rules="[{ required: true, message: '请输入分机密码', trigger: 'blur' }]"
+				:rules="[{ required: true, message: '请填写分机密码', trigger: 'blur' }]"
 				v-if="AppConfigInfo.isTelNeedVerify"
 			>
-				<el-input v-model="state.dutyForm.password" placeholder="请输入分机密码" />
+				<el-input v-model="state.dutyForm.password" placeholder="请填写分机密码" />
 			</el-form-item>
 		</el-form>
 		<template #footer>
@@ -419,11 +419,11 @@
 	<!-- 转接弹窗 -->
 	<el-dialog v-model="state.transferDialogVisible" draggable title="转接" width="500px">
 		<el-form :model="state.transferForm" label-width="100px" ref="transferFormRef">
-			<el-form-item label="转接号码" prop="telNo" :rules="[{ required: true, message: '请选择转接分机或输入外部电话', trigger: 'blur' }]">
+			<el-form-item label="转接号码" prop="telNo" :rules="[{ required: true, message: '请选择转接分机或填写外部电话', trigger: 'blur' }]">
 				<el-select-v2
 					v-model="state.transferForm.telNo"
 					:options="state.telsList"
-					placeholder="请选择转接分机或输入外部电话"
+					placeholder="请选择转接分机或填写外部电话"
 					filterable
 					class="w100"
 					allow-create
@@ -446,11 +446,11 @@
 	<!-- 呼叫弹窗 -->
 	<el-dialog v-model="state.outboundDialogVisible" draggable title="呼叫" width="450px">
 		<el-form :model="state.outboundForm" label-width="80px" ref="outboundFormRef">
-			<el-form-item label="呼叫号码" prop="telNo" :rules="[{ required: true, message: '请选择或输入呼叫号码', trigger: 'blur' }]">
+			<el-form-item label="呼叫号码" prop="telNo" :rules="[{ required: true, message: '请选择或填写呼叫号码', trigger: 'blur' }]">
 				<el-select-v2
 					v-model="state.outboundForm.telNo"
 					:options="state.telsList"
-					placeholder="请选择或输入呼叫号码"
+					placeholder="请选择或填写呼叫号码"
 					filterable
 					class="w100"
 					allow-create
@@ -473,11 +473,11 @@
 	<!-- 三方通话弹窗 -->
 	<el-dialog v-model="state.threeWayDialogVisible" draggable title="三方会议" width="450px">
 		<el-form :model="state.threeWayForm" label-width="120px" ref="threeWayFormRef">
-			<el-form-item label="三方通话号码" prop="telNo" :rules="[{ required: true, message: '请选择或输入三方通话号码', trigger: 'blur' }]">
+			<el-form-item label="三方通话号码" prop="telNo" :rules="[{ required: true, message: '请选择或填写三方通话号码', trigger: 'blur' }]">
 				<el-select-v2
 					v-model="state.threeWayForm.telNo"
 					:options="state.telsList"
-					placeholder="请选择或输入三方通话号码"
+					placeholder="请选择或填写三方通话号码"
 					filterable
 					class="w100"
 					allow-create
@@ -1287,7 +1287,7 @@ const isRest = ref<boolean>(false); // 是否小休
 //签入
 const onDutyFn = async () => {
 	if (AppConfigInfo.value.isNeedTelNo || AppConfigInfo.value.isTelNeedVerify) {
-		// 需要选择分机号或者输入密码 打开弹窗选择分机号
+		// 需要选择分机号或者填写密码 打开弹窗选择分机号
 		dutyFormRef.value?.resetFields();
 		state.dutyDialogVisible = true;
 	} else {
@@ -1446,6 +1446,7 @@ const onCallOut = () => {
 					useTelStatusStore.setPhoneControlState(TelStates.onCallOut);
 					state.loading = false;
 					getTelStatusFn();
+          seatAssistOff();// 关闭坐席辅助
 				})
 				.catch(() => {
 					state.loading = false;

+ 9 - 9
src/layout/navBars/breadcrumb/user.vue

@@ -87,8 +87,8 @@
 		<!-- 锁频 -->
 		<el-dialog v-model="dialogVisible" width="400px" draggable title="锁屏">
 			<el-form :model="state.ruleForm" ref="ruleFormRef" @submit.native.prevent>
-				<el-form-item label="锁屏密码" prop="pwd" :rules="[{ required: true, message: '请输入锁屏密码', trigger: 'blur' }]">
-					<el-input show-password placeholder="请输入密码" v-model="state.ruleForm.pwd" @keyup.enter="confirmLock(ruleFormRef)">
+				<el-form-item label="锁屏密码" prop="pwd" :rules="[{ required: true, message: '请填写锁屏密码', trigger: 'blur' }]">
+					<el-input show-password placeholder="请填写密码" v-model="state.ruleForm.pwd" @keyup.enter="confirmLock(ruleFormRef)">
 						<template #prefix>
 							<SvgIcon name="ele-Unlock" />
 						</template>
@@ -114,7 +114,7 @@
 					</el-input>
 				</el-form-item>
 				<el-form-item label="新密码" prop="newPassword" class="mb30">
-					<el-input class="inputDeep" clearable show-password placeholder="请输入新密码" v-model="state.dutyForm.newPassword" autocomplete="off">
+					<el-input class="inputDeep" clearable show-password placeholder="请填写新密码" v-model="state.dutyForm.newPassword" autocomplete="off">
 						<template #prefix>
 							<SvgIcon name="ele-Unlock" />
 						</template>
@@ -132,7 +132,7 @@
 						clearable
 						type="password"
 						show-password
-						placeholder="请再次输入密码"
+						placeholder="请再次填写密码"
 						v-model="state.dutyForm.confirmPassword"
 						autocomplete="off"
 					>
@@ -234,22 +234,22 @@ const checkPassword = (rule: any, value: string, callback: any) => {
 		return callback('提示:密码不得少于8位数,且必须包含字母大小写和特殊字符'); //弱密码
 	}
 	if (value === state.dutyForm.currentPassword) {
-		return callback('新密码不能与旧密码一致,请重新输入');
+		return callback('新密码不能与旧密码一致,请重新填写');
 	}
 	return callback();
 };
-// 检查输入密码是否一致
+// 检查填写密码是否一致
 const checkConfirmPassword = (rule: any, value: any, callback: any) => {
 	if (!value) {
-		return callback('请再次输入密码');
+		return callback('请再次填写密码');
 	}
 	if (value != state.dutyForm.newPassword) {
-		return callback('两次密码输入不一致,请重新输入');
+		return callback('两次密码填写不一致,请重新填写');
 	}
 	return callback();
 };
 const rules = reactive({
-	currentPassword: [{ required: true, message: '请输入旧密码', trigger: ['change', 'blur'] }],
+	currentPassword: [{ required: true, message: '请填写旧密码', trigger: ['change', 'blur'] }],
 	newPassword: [{ required: true, validator: checkPassword, trigger: ['change', 'blur'] }],
 	confirmPassword: [{ required: true, validator: checkConfirmPassword, trigger: 'blur' }],
 });

+ 1 - 1
src/layout/navBars/tagsView/tagsView.vue

@@ -355,7 +355,7 @@ const getCurrentRouteItem = (item: any) => {
 // 当前项右键菜单点击
 const onCurrentContextmenuClick = async (item: CurrentContextmenu) => {
 	item.commonUrl = transUrlParams(item);
-	if (!getCurrentRouteItem(item)) return ElMessage({ type: 'warning', message: '请正确输入路径及完整参数(query、params)' });
+	if (!getCurrentRouteItem(item)) return ElMessage({ type: 'warning', message: '请正确填写路径及完整参数(query、params)' });
 	const { path, name, params, query, meta, url } = getCurrentRouteItem(item);
 	switch (item.contextMenuClickId) {
 		case 0:

+ 2 - 2
src/router/backEnd.ts

@@ -56,7 +56,7 @@ const getAppConfigFn = async () => {
 			isRestApproval: result.isRestApproval ?? false, //是否开启小休审批
 			isNeedTelNo: result.isNeedTelNo ?? false, //分机签入是否需要选择号码
 			talkingDealTime: result.talkingDealTime ?? 0, // 自动话后整理时间
-			isTelNeedVerify: result.isTelNeedVerify ?? false, //分机签入是否需要输入密码
+			isTelNeedVerify: result.isTelNeedVerify ?? false, //分机签入是否需要填写密码
 			isCustomEvent: result.isCustomEvent ?? false, //是否开启自定义事件
 			isTranspondCity: result.isTranspondCity ?? false, //是否开启市州互转
 			isAverageSendOrder: result.isAverageSendOrder ?? false, //是否开启平均派单
@@ -64,7 +64,7 @@ const getAppConfigFn = async () => {
 		});
 		console.log(
 			`是否开启小休审批${result.isRestApproval},自动话后整理时间${result.talkingDealTime}秒,
-			分机签入是否需要选择号码${result.isNeedTelNo},分机签入是否需要输入密码${result.isTelNeedVerify},
+			分机签入是否需要选择号码${result.isNeedTelNo},分机签入是否需要填写密码${result.isTelNeedVerify},
 			是否开启自定义事件${result.isCustomEvent},是否开启市州互转${result.isTranspondCity},是否开启平均派单${result.isAverageSendOrder},
 			是否开启司法行政执法工单选项${result.isOpenJudicialManagement}`
 		);

+ 7 - 7
src/views/forgetPwd/component/Forget-password.vue

@@ -23,7 +23,7 @@
 				clearable
 				type="password"
 				show-password
-				placeholder="请输入新密码"
+				placeholder="请填写新密码"
 				v-model="state.ruleForm.newPassword"
 				autocomplete="off"
 			>
@@ -46,7 +46,7 @@
 				clearable
 				type="password"
 				show-password
-				placeholder="请再次输入密码"
+				placeholder="请再次填写密码"
 				v-model="state.ruleForm.confirmPassword"
 				autocomplete="off"
 			>
@@ -161,22 +161,22 @@ const checkPassword = (rule: any, value: string, callback: any) => {
 		return callback('提示:密码不得少于8位数,且必须包含字母大小写和特殊字符'); //弱密码
 	}
 	if (value === state.ruleForm.currentPassword) {
-		return callback('新密码不能与旧密码一致,请重新输入');
+		return callback('新密码不能与旧密码一致,请重新填写');
 	}
 	return callback();
 };
-// 检查输入密码是否一致
+// 检查填写密码是否一致
 const checkConfirmPassword = (rule: any, value: any, callback: any) => {
 	if (!value) {
-		return callback('请再次输入密码');
+		return callback('请再次填写密码');
 	}
 	if (value != state.ruleForm.newPassword) {
-		return callback('两次密码输入不一致,请重新输入');
+		return callback('两次密码填写不一致,请重新填写');
 	}
 	return callback();
 };
 const rules = reactive({
-	currentPassword: [{ required: true, message: '请输入旧密码', trigger: ['change', 'blur'] }],
+	currentPassword: [{ required: true, message: '请填写旧密码', trigger: ['change', 'blur'] }],
 	newPassword: [{ required: true, validator: checkPassword, trigger: ['change', 'blur'] }],
 	confirmPassword: [{ required: true, validator: checkConfirmPassword, trigger: 'blur' }],
 });

+ 1 - 1
src/views/knowledge/component/Knowledge-keywords.vue

@@ -2,7 +2,7 @@
 	<el-drawer title="知识关键词" v-model="drawerVisible" size="40%">
 		<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
 			<el-form-item label="关键词" prop="Tag">
-				<el-input v-model="state.queryParams.Tag" placeholder="请输入关键词" clearable @keyup.enter="handleQuery" />
+				<el-input v-model="state.queryParams.Tag" placeholder="请填写关键词" clearable @keyup.enter="handleQuery" />
 			</el-form-item>
 			<el-form-item>
 				<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>

+ 4 - 4
src/views/knowledge/config/standard/index.vue

@@ -2,11 +2,11 @@
 	<div class="knowledge-standard-container layout-pd">
 		<el-card shadow="never">
 			<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="80px">
-				<el-form-item label="标题" prop="title" :rules="[{ required: true, message: '输入标题,不超过30个字', trigger: 'blur' }]">
-					<el-input v-model="state.ruleForm.title" placeholder="输入标题,不超过30个字" clearable max-length="30"></el-input>
+				<el-form-item label="标题" prop="title" :rules="[{ required: true, message: '填写标题,不超过30个字', trigger: 'blur' }]">
+					<el-input v-model="state.ruleForm.title" placeholder="填写标题,不超过30个字" clearable max-length="30"></el-input>
 				</el-form-item>
-				<el-form-item label="正文" prop="content" :rules="[{ required: true, message: '请输入正文内容', trigger: 'blur' }]">
-					<editor v-model:get-html="state.ruleForm.content" :disable="state.disable" placeholder="请输入正文内容" height="450px" />
+				<el-form-item label="正文" prop="content" :rules="[{ required: true, message: '请填写正文内容', trigger: 'blur' }]">
+					<editor v-model:get-html="state.ruleForm.content" :disable="state.disable" placeholder="请填写正文内容" height="450px" />
 				</el-form-item>
 				<el-form-item>
 					<el-button class="default-button" @click="onPreview">预 览</el-button>

+ 1 - 1
src/views/knowledge/question/index.vue

@@ -3,7 +3,7 @@
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
 				<el-form-item label="提问人" prop="CreatorName">
-					<el-input v-model="state.queryParams.CreatorName" placeholder="请输入提问人" clearable @keyup.enter="handleQuery" class="keyword-input" />
+					<el-input v-model="state.queryParams.CreatorName" placeholder="请填写提问人" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
 				<el-form-item label="知识分类" prop="KnowledgeTypeId">
 					<el-cascader

+ 4 - 4
src/views/knowledge/retrieval/index.vue

@@ -10,13 +10,13 @@
 				<pane min-size="16" max-size="25" size="16" class="left-container">
 					<el-tabs v-model="state.activeName" stretch @tab-change="resetNode">
 						<el-tab-pane label="部门" name="0">
-							<el-input v-model="filterOrg" placeholder="请输入部门名称" class="input-with-select mb10" clearable @input="onQueryChanged"> </el-input>
+							<el-input v-model="filterOrg" placeholder="请填写部门名称" class="input-with-select mb10" clearable @input="onQueryChanged"> </el-input>
 						</el-tab-pane>
 						<el-tab-pane label="知识分类" name="1">
-							<el-input v-model="filterType" placeholder="请输入知识分类名称" class="input-with-select mb10" clearable> </el-input>
+							<el-input v-model="filterType" placeholder="请填写知识分类名称" class="input-with-select mb10" clearable> </el-input>
 						</el-tab-pane>
 						<el-tab-pane label="热点" name="2">
-							<el-input v-model="filterHot" placeholder="请输入热点名称" class="input-with-select mb10" clearable> </el-input>
+							<el-input v-model="filterHot" placeholder="请填写热点名称" class="input-with-select mb10" clearable> </el-input>
 						</el-tab-pane>
 					</el-tabs>
 					<el-scrollbar style="height: calc(100% - 140px);'" ref="scrollBarRef">
@@ -310,7 +310,7 @@ const filterHot = ref('');
 const hotRef = ref<RefType>();
 watch(filterHot, (val) => {
 	if (val) {
-		lazyShow.value = false; //当输入框有值时关闭懒加载
+		lazyShow.value = false; //当填写框有值时关闭懒加载
 		loading.value = true;
 		hotSpotSearch(val)
 			.then((res) => {

+ 72 - 61
src/views/todo/seats/accept/Call-summary.vue

@@ -1,67 +1,72 @@
 <template>
 	<div class="call-summary">
 		<el-scrollbar class="h100 transition-box-content" noresize ref="scrollbarRef" max-height="400" v-loading="loading">
-			<div class="call-item">
-				<el-text tag="p" class="call-item-label">客户姓名:</el-text>
-				<p class="call-item-value">{{ recognizeList?.name }}</p>
-			</div>
-			<!--      <div class="call-item">
-        <el-text tag="p" class="call-item-label">年龄:</el-text>
-        <p class="call-item-value">{{ recognizeList?.age }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">性别:</el-text>
-        <p class="call-item-value">{{ recognizeList?.sex }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">身份证号:</el-text>
-        <p class="call-item-value">{{ recognizeList?.id_card }}</p>
-      </div>-->
-			<div class="call-item">
-				<el-text tag="p" class="call-item-label">地址:</el-text>
-				<p class="call-item-value">{{ recognizeList?.address }}</p>
-			</div>
-			<!--      						<div class="call-item">
-        <el-text tag="p" class="call-item-label">公司名称:</el-text>
-        <p class="call-item-value">{{ recognizeList?.company_name }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">通话小结:</el-text>
-        <p class="call-item-value">{{ recognizeList?.call_detail_content }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">受理类型:</el-text>
-        <p class="call-item-value">{{ recognizeList?.acceptance_type }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">推送分类:</el-text>
-        <p class="call-item-value">{{ recognizeList?.push_classification }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">热点分类:</el-text>
-        <p class="call-item-value">{{ recognizeList?.hotspot_classification }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">事件目的:</el-text>
-        <p class="call-item-value">{{ recognizeList?.event_purpose }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">工单标题:</el-text>
-        <p class="call-item-value">{{ recognizeList?.record_title }}</p>
-      </div>
-      <div class="call-item">
-        <el-text tag="p" class="call-item-label">诉求详情:</el-text>
-        <p class="call-item-value">{{ recognizeList?.appeal_detatls }}</p>
-      </div>-->
-			<div class="flex-center-center mt20">
-				<el-button type="primary" @click="fillSingle" round>一键填单</el-button>
-				<el-button @click="onCancel" class="default-button" round>刷新</el-button>
-			</div>
+			<template v-if="!invalidId">
+				<div class="call-box">
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">客户姓名:</el-text>
+            <p class="call-item-value">{{ recognizeList?.name }}</p>
+          </div>
+          <!--      <div class="call-item">
+            <el-text tag="p" class="call-item-label">年龄:</el-text>
+            <p class="call-item-value">{{ recognizeList?.age }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">性别:</el-text>
+            <p class="call-item-value">{{ recognizeList?.sex }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">身份证号:</el-text>
+            <p class="call-item-value">{{ recognizeList?.id_card }}</p>
+          </div>-->
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">地址:</el-text>
+            <p class="call-item-value">{{ recognizeList?.address }}</p>
+          </div>
+          <!--      						<div class="call-item">
+            <el-text tag="p" class="call-item-label">公司名称:</el-text>
+            <p class="call-item-value">{{ recognizeList?.company_name }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">通话小结:</el-text>
+            <p class="call-item-value">{{ recognizeList?.call_detail_content }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">受理类型:</el-text>
+            <p class="call-item-value">{{ recognizeList?.acceptance_type }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">推送分类:</el-text>
+            <p class="call-item-value">{{ recognizeList?.push_classification }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">热点分类:</el-text>
+            <p class="call-item-value">{{ recognizeList?.hotspot_classification }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">事件目的:</el-text>
+            <p class="call-item-value">{{ recognizeList?.event_purpose }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">工单标题:</el-text>
+            <p class="call-item-value">{{ recognizeList?.record_title }}</p>
+          </div>
+          <div class="call-item">
+            <el-text tag="p" class="call-item-label">诉求详情:</el-text>
+            <p class="call-item-value">{{ recognizeList?.appeal_detatls }}</p>
+          </div>-->
+        </div>
+				<div class="flex-center-center mt10">
+					<el-button type="primary" @click="fillSingle" round>一键填单</el-button>
+					<el-button @click="onRefresh" class="default-button" round>刷新</el-button>
+				</div>
+			</template>
+			<Empty v-else />
 		</el-scrollbar>
 	</div>
 </template>
 <script setup lang="ts" name="orderAcceptCallSummary">
-import { ref } from 'vue';
+import { computed, ref } from 'vue';
 import { voiceAssistantContent } from '@/api/todo/voiceAssistant';
 import { useRoute } from 'vue-router';
 import { ElMessage, ElMessageBox } from 'element-plus';
@@ -71,11 +76,15 @@ const recognizeList = ref<EmptyObjectType>({}); // 识别信息
 // 获取识别内容
 const route = useRoute();
 const loading = ref(false);
+// 无效id
+const invalidId = computed(() => {
+	return !route.params.callId || route.params.callId.length === 13;
+});
 const getRecognize = async () => {
 	loading.value = true;
 	try {
 		const callId = route.params.callId;
-		if (!callId) {
+		if (invalidId.value) {
 			// ElMessage.info('暂未获取到通话ID,请关闭页面重新进入重试');
 			loading.value = false;
 			return;
@@ -86,7 +95,7 @@ const getRecognize = async () => {
 	} catch (error) {
 		console.log('获取识别内容失败', error);
 		loading.value = false;
-    ElMessage.error('获取识别内容失败');
+		ElMessage.error('获取识别内容失败');
 	}
 };
 // 一键填单
@@ -104,7 +113,7 @@ const fillSingle = () => {
 		})
 		.catch(() => {});
 };
-const onCancel = () => {
+const onRefresh = () => {
 	getRecognize();
 };
 defineExpose({
@@ -114,8 +123,10 @@ defineExpose({
 <style scoped lang="scss">
 .call-summary {
 	.transition-box-content {
-		padding: 20px 30px;
 		max-height: 400px;
+    .call-box{
+      padding: 20px 30px 0 30px;
+    }
 		.call-item {
 			margin-bottom: 30px;
 		}

+ 1 - 0
src/views/todo/seats/accept/Citizen-portrait.vue

@@ -278,6 +278,7 @@ defineExpose({
     }
     .tag-list {
       margin-top: 20px;
+      overflow: auto;
       .el-tag {
         margin: 0 10px 10px 0;
         &:last-child {

+ 38 - 4
src/views/todo/seats/accept/Script-navigation.vue

@@ -1,7 +1,7 @@
 <template>
-<!--	<el-button @click="next">下一步</el-button>-->
 	<div class="script-navigation">
-		<el-steps direction="vertical" :active="active">
+		<el-steps direction="vertical" :active="active" finish-status="success">
+<!--      <el-button @click="next">下一步</el-button>-->
 			<el-step title="开场语" />
 			<el-step title="确认市民诉求和个人信息" />
 			<el-step title="结束前语" />
@@ -10,16 +10,50 @@
 	</div>
 </template>
 <script setup lang="ts" name="orderAcceptScriptNavigation">
-import { ref } from 'vue';
+import { ref,onActivated, onDeactivated, onMounted  } from 'vue';
+import mittBus from "@/utils/mitt";
+import { useRoute } from "vue-router";
 const active = ref(0);
 const next = () => {
 	if (active.value++ > 3) active.value = 0;
 };
+// 订阅消息
+const route = useRoute();
+const subscribe = () => {
+  // 接受消息
+  mittBus.on('wsReceive', (message: any) => {
+    const data = JSON.parse(message.data);
+    if (data.body.content.callId === route.params.callId) {
+      // 判断是否是当前通话
+      wsReceive(message);
+    }
+  });
+};
+const wsReceive = (message: any) => {
+  try {
+    const data = JSON.parse(message.data);
+    console.log(data);
+  } catch (error) {
+    console.log('坐席辅助收到消息', message);
+  }
+};
+onMounted(() => {
+  // 进入页面订阅
+  subscribe();
+});
+onActivated(() => {
+  // 缓存进入重新订阅
+  subscribe();
+});
+onDeactivated(() => {
+  // 缓存离开取消订阅
+  mittBus.off('wsReceive');
+});
 </script>
 
 <style scoped lang="scss">
 .script-navigation {
-	padding: 0 50px 50px 50px;
+	padding: 20px 50px 20px 50px;
 	height: 300px;
 	max-width: 600px;
 }

+ 63 - 272
src/views/todo/seats/accept/Voice-assistant.vue

@@ -11,9 +11,9 @@
 							<div class="user-date">{{ formatDate(item.timestamps, 'YYYY-mm-dd HH:MM:SS') }}</div>
 						</div>
 						<div class="user-content">{{ item.body?.content?.callSentenceInfo.text }}</div>
-            <div class="user-tag">
-              <el-tag v-for="(items, index) in item.body?.content?.callSentenceInfo.tags" size="small">{{items}}</el-tag>
-            </div>
+						<div class="user-tag">
+							<el-tag v-for="(items, index) in item.body?.content?.callSentenceInfo.tags" size="small">{{ items }}</el-tag>
+						</div>
 					</div>
 					<div v-else class="agent">
 						<img v-lazy="getImageUrl('order/service.png')" alt="" class="agent-avatar" src="" />
@@ -22,9 +22,9 @@
 							{{ item.body?.content?.calledNumber }}
 						</div>
 						<div class="agent-content">{{ item.body?.content?.callSentenceInfo.text }}</div>
-            <div class="agent-tag">
-              <el-tag v-for="(items, index) in item.body?.content?.callSentenceInfo.tags" size="small">{{items}}</el-tag>
-            </div>
+						<div class="agent-tag">
+							<el-tag v-for="(items, index) in item.body?.content?.callSentenceInfo.tags" size="small">{{ items }}</el-tag>
+						</div>
 					</div>
 				</div>
 				<el-text class="end-call" tag="p" v-if="talkEnd">-- 通话结束 --</el-text>
@@ -113,7 +113,7 @@
 </template>
 <script setup lang="ts" name="orderAcceptVoiceAssistant">
 import { nextTick, onActivated, onDeactivated, onMounted, ref, watch } from 'vue';
-import { ElMessage, ElMessageBox } from "element-plus";
+import { ElMessage, ElMessageBox } from 'element-plus';
 import { getImageUrl } from '@/utils/tools';
 import { useRoute } from 'vue-router';
 import { formatDate } from '@/utils/formatTime';
@@ -124,7 +124,7 @@ import other from '@/utils/other';
 const emit = defineEmits(['orderOverwrite']);
 // 消息列表
 const messageList = ref<any>([
-/*	{
+	/*	{
 		body: {
 			content: {
 				callSentenceInfo: {
@@ -154,242 +154,34 @@ const messageList = ref<any>([
 	},*/
 ]); // 消息列表
 const showMessageList = ref([
-/*	{
-		body: {
-			content: {
-				callSentenceInfo: {
-					text: '你好,我是小智,有什么可以帮您的吗122222222222222222222222dsadsadddddddddd?',
-					role: 'agent',
-          tags:['语速过快','情绪激动']
-				},
-				calledNumber: '1009',
-				callerNumber: '19136073037',
-			},
-		},
-		timestamps: new Date().getTime(),
-	},
-	{
-		body: {
-			content: {
-				callSentenceInfo: {
-					text: '12311?',
-					role: 'user',
-          tags:['语速过快','情绪激动']
-				},
-				calledNumber: '1009',
-				callerNumber: '19136073037',
-			},
-		},
-		timestamps: new Date().getTime(),
-	},{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
+	/*  {
+      body: {
+        content: {
+          callSentenceInfo: {
+            text: '你好,我是小智,有什么可以帮您的吗?',
+            role: 'agent',
+            tags:['语速过快','情绪激动']
+          },
+          calledNumber: '1009',
+          callerNumber: '19136073037',
         },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
       },
+      timestamps: new Date().getTime(),
     },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
+    {
+      body: {
+        content: {
+          callSentenceInfo: {
+            text: '12311?',
+            role: 'user',
+            tags:['语速过快','情绪激动']
+          },
+          calledNumber: '1009',
+          callerNumber: '19136073037',
         },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
       },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },{
-    body: {
-      content: {
-        callSentenceInfo: {
-          text: '12311?',
-          role: 'user',
-          tags:['语速过快','情绪激动']
-        },
-        calledNumber: '1009',
-        callerNumber: '19136073037',
-      },
-    },
-    timestamps: new Date().getTime(),
-  },*/
+      timestamps: new Date().getTime(),
+    },*/
 ]);
 const recognizeList = ref<EmptyObjectType>({}); // 识别信息
 const route = useRoute();
@@ -455,7 +247,7 @@ const getRecognize = async () => {
 		recognizeList.value = result;
 	} catch (error) {
 		console.log('获取识别内容失败', error);
-    ElMessage.error('获取识别内容失败');
+		ElMessage.error('获取识别内容失败');
 	}
 };
 // 停止滚动
@@ -516,20 +308,19 @@ const subscribe = () => {
 	});
 };
 // 消息筛选
-const staticMessage = other.deepClone(messageList.value);
 const filterMessage = (type: string) => {
 	switch (type) {
 		case '市民':
-			showMessageList.value = staticMessage.filter((item: any) => item.body.content.callSentenceInfo.role === 'user');
+			showMessageList.value = messageList.value.filter((item: any) => item.body.content.callSentenceInfo.role === 'user');
 			break;
 		case '坐席':
-			showMessageList.value = staticMessage.filter((item: any) => item.body.content.callSentenceInfo.role === 'agent');
+			showMessageList.value = messageList.value.filter((item: any) => item.body.content.callSentenceInfo.role === 'agent');
 			break;
 		case '全部':
-			showMessageList.value = staticMessage;
+			showMessageList.value = messageList.value;
 			break;
 		default:
-			showMessageList.value = staticMessage;
+			showMessageList.value = messageList.value;
 			break;
 	}
 };
@@ -574,9 +365,9 @@ defineExpose({
 			color: var(--el-color-white);
 			margin: 10px 10px 50px 10px;
 			display: flex;
-      &:last-child {
-					margin-bottom: 0;
-				}
+			&:last-child {
+				margin-bottom: 0;
+			}
 			.user {
 				&-content {
 					border-radius: var(--el-border-radius-base);
@@ -606,24 +397,24 @@ defineExpose({
 					margin-bottom: 5px;
 					margin-left: 65px;
 
-          display: flex;
-          justify-content: flex-end;
-          align-items: center;
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
 				}
 
 				&-date {
 					font-size: var(--el-font-size-extra-small);
 					color: var(--el-text-color-placeholder);
-          margin-left: 10px;
+					margin-left: 10px;
+				}
+				&-tag {
+					position: absolute;
+					bottom: -30px;
+					left: 65px;
+					:deep(.el-tag) {
+						margin-right: 10px;
+					}
 				}
-        &-tag{
-          position: absolute;
-          bottom: -30px;
-          left: 65px;
-          :deep(.el-tag){
-            margin-right: 10px;
-          }
-        }
 
 				&-avatar {
 					width: 40px;
@@ -665,24 +456,24 @@ defineExpose({
 					margin-bottom: 5px;
 					text-align: right;
 					margin-right: 65px;
-          display: flex;
-          justify-content: flex-end;
-          align-items: center;
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
 				}
 
 				&-date {
 					font-size: var(--el-font-size-extra-small);
 					color: var(--el-text-color-placeholder);
-          margin-right: 10px;
+					margin-right: 10px;
+				}
+				&-tag {
+					position: absolute;
+					bottom: -30px;
+					right: 65px;
+					:deep(.el-tag) {
+						margin-left: 10px;
+					}
 				}
-        &-tag{
-          position: absolute;
-          bottom: -30px;
-          right: 65px;
-          :deep(.el-tag){
-            margin-left: 10px;
-          }
-        }
 				&-avatar {
 					width: 40px;
 					height: 40px;

+ 1 - 1
src/views/todo/seats/accept/index.vue

@@ -33,7 +33,7 @@
           <el-card shadow="never">
             <el-form :model="state.ruleForm" ref="ruleFormRef" label-width="110px" label-position="right" scroll-to-error>
               <p class="border-title mb10">来电信息</p>
-              <el-row :gutter="0">
+              <el-row :gutter="20">
                 <!-- 来源渠道 -->
                 <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
                   <!-- 手动创建 -->

+ 1 - 1
src/views/todo/seats/index.vue

@@ -67,7 +67,7 @@
 		</el-card>
 	</div>
 </template>
-<script setup lang="tsx" name="todoOrder">
+<script setup lang="tsx" name="todoSeats">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';