zhangchong 3 месяцев назад
Родитель
Сommit
78dc98559a

+ 1 - 1
src/api/snapshot/info.ts

@@ -32,7 +32,7 @@ export const getSnapshotBulletinList = (params: object) => {
 export const getSnapshotBulletinExport = (data: object) => {
 	return request(
 		{
-			url: `/api/v1/SnapshotBulletin/bulletin/export_excel`,
+			url: `/api/v1/SnapshotBulletin/bulletin/query/export_excel`,
 			method: 'post',
 			data,
 			responseType: 'blob',

+ 4 - 4
src/components/ProcessAudit/LZProcess.vue

@@ -704,9 +704,9 @@ const handleResult = (res: any) => {
 
 // 先确定当前环节是那一步
 /*
- * currentParams.value.currentStepBusinessType 表示当前节点到哪一步 0坐席 1派单 2部门节点 3部门领导节点
+ * currentParams.value.currentStepBusinessType 表示当前节点到哪一步 0坐席 1派单 2部门节点 3部门领导节点 4中心班长 5中心领导
  * */
-/*selectNext.value.businessType 表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点
+/*selectNext.value.businessType 表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点  4中心班长 5中心领导
  * selectNext.value.orgLevel 表示部门等级 1 一级部门 2 二级部门 3 三级部门 4 四级部门
  * selectNext.value.stepType 0普通节点 3汇总节点
  * */
@@ -848,8 +848,8 @@ const selectNextStep = (val: any) => {
 		// 如果办理对象只有一个默认选中
 		state.ruleForm.nextHandlers = [items[0]];
 	}
-	// 如果是泸州所有流转到派单组节点的都需要必填办理对象
-	nextHandlersRequired.value = selectNext.value.businessType === 1;
+	// 如果是泸州所有流转到派单组节点或者班长审批的都需要必填办理对象
+	nextHandlersRequired.value = [1,4].includes(selectNext.value.businessType);
 
 	// 以下是默认需要吧短信勾上的场景 话务到部门、派单到一级部门、部门到部门、部门到汇总、部门到部门领导  部门退回到部门
 	state.ruleForm.isSms =

+ 2 - 2
src/components/ProcessAudit/YBProcess.vue

@@ -583,9 +583,9 @@ const isOverdueTips = computed(() => {
 });
 // 先确定当前环节是那一步
 /*
- * currentParams.value.currentStepBusinessType 表示当前节点到哪一步 0坐席 1派单 2部门节点 3部门领导节点
+ * currentParams.value.currentStepBusinessType 表示当前节点到哪一步 0坐席 1派单 2部门节点 3部门领导节点 4中心班长 5中心领导
  * */
-/*selectNext.value.businessType 表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点
+/*selectNext.value.businessType 表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点 4中心班长 5中心领导
  * selectNext.value.orgLevel 表示部门等级 1 一级部门 2 二级部门 3 三级部门 4 四级部门
  * selectNext.value.stepType  0普通节点 3汇总节点
  * */

+ 2 - 2
src/components/ProcessAudit/ZGProcess.vue

@@ -680,8 +680,8 @@ const openDialog = async (val: any) => {
 		state.loading = false;
 	}
 };
-// 处理退回 currentBusinessType   表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点
-// targetBusinessType  0 坐席 1派单  2部门节点  3部门领导节点
+// 处理退回 currentBusinessType   表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点  4中心班长 5中心领导
+// targetBusinessType  0 坐席 1派单  2部门节点  3部门领导节点  4中心班长 5中心领导
 const isShowReturnSms = ref(false);
 const handleResultReturn = (res: any) => {
 	// 部门退部门需要默认选中短信

+ 2 - 2
src/components/ProcessAudit/ZGSSPProcess.vue

@@ -913,9 +913,9 @@ const handleResult = (res: any) => {
 
 // 先确定当前环节是那一步
 /*
- * currentParams.value.currentStepBusinessType 表示当前节点到哪一步 0坐席 1派单 2部门节点 3部门领导节点
+ * currentParams.value.currentStepBusinessType 表示当前节点到哪一步 0坐席 1派单 2部门节点 3部门领导节点  4中心班长 5中心领导
  * */
-/*selectNext.value.businessType 表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点
+/*selectNext.value.businessType 表示选择节点到哪一步  0 坐席 1派单  2部门节点  3部门领导节点  4中心班长 5中心领导
  * selectNext.value.orgLevel 表示部门等级 1 一级部门 2 二级部门 3 三级部门 4 四级部门
  * selectNext.value.stepType 0普通节点 3汇总节点
  * */

+ 20 - 23
src/views/knowledge/index/YBIndex.vue

@@ -193,7 +193,7 @@
 						<el-tab-pane :label="v.value" :name="v.key" v-for="(v, i) in state.statusOptions" :key="i" :disabled="state.tableLoading"></el-tab-pane>
 					</el-tabs>
 					<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent :disabled="state.tableLoading">
-<!--						<el-form-item label="审核类型" prop="ModuleCode" v-if="state.queryParams.Status === 1">
+						<!--						<el-form-item label="审核类型" prop="ModuleCode" v-if="state.queryParams.Status === 1">
 							<el-segmented
 								:options="state.tabAuditingNames"
 								v-model="state.queryParams.ModuleCode"
@@ -287,7 +287,7 @@
 							@checkbox-change="selectChangeEvent"
 						>
 							<vxe-column type="checkbox" width="50" align="center"></vxe-column>
-<!--							<vxe-column field="workflow.moduleName" title="审核类型" width="120" v-if="state.queryParams.Status === 1"></vxe-column>-->
+							<!--							<vxe-column field="workflow.moduleName" title="审核类型" width="120" v-if="state.queryParams.Status === 1"></vxe-column>-->
 							<vxe-column field="title" title="标题" min-width="200">
 								<template #default="{ row }">
 									<el-button link type="primary" @click="onPreview(row)">{{ row.title }}</el-button>
@@ -325,7 +325,7 @@
 									{{ formatDate(row.lastModificationTime, 'YYYY-mm-dd HH:MM:SS') }}
 								</template>
 							</vxe-column>
-							<vxe-column title="操作" fixed="right" width="150" align="center" :show-overflow="false">
+							<vxe-column title="操作" fixed="right" width="210" align="center" :show-overflow="false">
 								<template #default="{ row }">
 									<el-button
 										link
@@ -367,6 +367,7 @@
 									>
 										上架
 									</el-button>
+									<el-button link type="primary" @click="onPreview(row)"> 查看 </el-button>
 								</template>
 							</vxe-column>
 						</vxe-table>
@@ -804,11 +805,10 @@ const offShelfFn = (row: any) => {
 		})
 			.then(() => {
 				state.tableLoading = true;
-				KnowledgeOffShelfNew({ id: row.id })
-					.then(() => {
-						ElMessage.success('操作成功');
-						handleQuery();
-					})
+				KnowledgeOffShelfNew({ id: row.id }).then(() => {
+					ElMessage.success('操作成功');
+					handleQuery();
+				});
 			})
 			.catch(() => {});
 	} else {
@@ -826,11 +826,10 @@ const groundingFn = (row: any) => {
 	})
 		.then(() => {
 			state.tableLoading = true;
-			KnowledgeOnTheShelf(row.id)
-				.then(() => {
-					ElMessage.success('操作成功');
-					handleQuery();
-				})
+			KnowledgeOnTheShelf(row.id).then(() => {
+				ElMessage.success('操作成功');
+				handleQuery();
+			});
 		})
 		.catch(() => {});
 };
@@ -880,11 +879,10 @@ const onOpen = () => {
 	})
 		.then(() => {
 			state.tableLoading = true;
-			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: true })
-				.then(() => {
-					ElMessage.success('操作成功');
-					handleQuery();
-				})
+			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: true }).then(() => {
+				ElMessage.success('操作成功');
+				handleQuery();
+			});
 		})
 		.catch(() => {});
 };
@@ -900,11 +898,10 @@ const onPrivate = () => {
 	})
 		.then(() => {
 			state.tableLoading = true;
-			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: false })
-				.then(() => {
-					ElMessage.success('操作成功');
-					handleQuery();
-				})
+			knowledgeDraftUpdatePublic({ knowledgeIds: ids, isPublic: false }).then(() => {
+				ElMessage.success('操作成功');
+				handleQuery();
+			});
 		})
 		.catch(() => {});
 };

+ 8 - 1
src/views/knowledge/index/ZGIndex.vue

@@ -282,7 +282,7 @@
 									{{ formatDate(row.lastModificationTime, 'YYYY-mm-dd HH:MM:SS') }}
 								</template>
 							</vxe-column>
-							<vxe-column title="操作" fixed="right" width="150" align="center" :show-overflow="false">
+							<vxe-column title="操作" fixed="right" width="210" align="center" :show-overflow="false">
 								<template #default="{ row }">
 									<el-button
 										link
@@ -324,6 +324,13 @@
 									>
 										上架
 									</el-button>
+                  <el-button
+                      link
+                      type="primary"
+                      @click="onPreview(row)"
+                  >
+                    查看
+                  </el-button>
 								</template>
 							</vxe-column>
 						</vxe-table>

+ 13 - 15
src/views/tels/recordUpload/components/Upload.vue

@@ -1,5 +1,5 @@
 <template>
-	<el-dialog v-model="state.dialogVisible" width="50%" draggable title="录音上传">
+	<el-dialog v-model="state.dialogVisible" width="50%" draggable title="录音上传" @close="close">
 		<el-upload
 			class="upload-demo"
 			v-model:file-list="fileList"
@@ -27,7 +27,7 @@
 		<template #footer>
 			<span class="dialog-footer">
 				<el-button @click="closeDialog" class="default-button">取 消</el-button>
-				<el-button type="primary" @click="onSave" :loading="loading">保 存</el-button>
+				<el-button type="primary" @click="onSave" :loading="uploadingDisabled" :disabled="disabled">{{uploadingDisabled ? '上传中...' : '确 定'}}</el-button>
 			</span>
 		</template>
 	</el-dialog>
@@ -35,8 +35,6 @@
 
 <script setup lang="ts" name="parameterAdd">
 import { computed, reactive, ref } from 'vue';
-import { useAppConfig } from '@/stores/appConfig';
-import { storeToRefs } from 'pinia';
 import { ElMessage, UploadFile, UploadFiles, UploadUserFile } from 'element-plus';
 import Other from '@/utils/other';
 import { uploadRecordSave } from '@/api/tels/uploadRecord';
@@ -55,17 +53,17 @@ const state = reactive<any>({
 	},
 });
 
-const appConfigStore = useAppConfig();
-const { AppConfigInfo } = storeToRefs(appConfigStore); // 系统配置信息
-const fileTypeAccept = AppConfigInfo.value?.fileExt;
+const fileTypeAccept = '.wav,.mp3,.ogg,.acc,.webm,.amr,.wma,.ape';
 const action = computed(() => {
-	return import.meta.env.VITE_API_UPLOAD_URL + '/file/upload?source=hotline';
+	return import.meta.env.VITE_API_UPLOAD_URL + '/file/uploadinside?source=hotline';
 	// return 'http://171.94.154.2:50105/hlfs/file/upload?source=hotline';
 });
 
 const fileList = ref<EmptyArrayType>([]);
 const uploadListRef = ref<RefType>(); // 上传组件ref
-
+const disabled = computed(() => {
+	return fileList.value.length === 0;
+});
 // 格式化数据
 const formatData = (data: any) => {
 	return data.map((v: any) => {
@@ -165,13 +163,13 @@ const updateSuccess = (response: any, uploadFile: UploadFile, uploadFiles: Uploa
 let loading = ref<boolean>(false); // 加载状态
 // 打开弹窗
 const ruleFormRef = ref<RefType>();
-const openDialog = async () => {
+const openDialog = () => {
+	state.dialogVisible = true;
+};
+// 关闭
+const close = () => {
 	ruleFormRef.value?.resetFields();
-	try {
-		state.dialogVisible = true;
-	} catch (error) {
-		console.log(error);
-	}
+	fileList.value = [];
 };
 // 关闭弹窗
 const closeDialog = () => {

+ 2 - 1
src/views/tels/recordUpload/index.vue

@@ -209,8 +209,9 @@ const onUpload = () => {
 	uploadRef.value.openDialog();
 };
 // 播放
+const playRecordRef = ref<RefType>();
 const onPlay = (row: any) => {
-	window.open(row.allPath)
+    playRecordRef.value.playRecordPath(row.allPath);
 };
 // 下载
 const onDownload = (row: any) => {