Prechádzať zdrojové kódy

reactor:图片压缩;对接分机管理;

zhangchong 1 rok pred
rodič
commit
545d5df291
53 zmenil súbory, kde vykonal 54 pridanie a 79 odobranie
  1. 9 14
      src/api/tels/callLog.ts
  2. 17 0
      src/api/tels/extension.ts
  3. 1 5
      src/api/tels/restApply.ts
  4. BIN
      src/assets/images/home/Call.png
  5. BIN
      src/assets/images/home/connectionRate.png
  6. BIN
      src/assets/images/home/wait.png
  7. BIN
      src/assets/images/home/workOrder.png
  8. BIN
      src/assets/images/login/bg.png
  9. BIN
      src/assets/images/login/changePwd_header.png
  10. BIN
      src/assets/images/order/processNormal.png
  11. BIN
      src/assets/images/order/processReturn.png
  12. BIN
      src/assets/images/order/service.png
  13. BIN
      src/assets/images/order/user.png
  14. BIN
      src/assets/images/phoneControls/active.png
  15. BIN
      src/assets/images/phoneControls/conference_blue.png
  16. BIN
      src/assets/images/phoneControls/conference_grey.png
  17. BIN
      src/assets/images/phoneControls/conference_white.png
  18. BIN
      src/assets/images/phoneControls/dutyOff_blue.png
  19. BIN
      src/assets/images/phoneControls/dutyOff_grey.png
  20. BIN
      src/assets/images/phoneControls/dutyOff_white.png
  21. BIN
      src/assets/images/phoneControls/dutyOn_blue.png
  22. BIN
      src/assets/images/phoneControls/dutyOn_white.png
  23. BIN
      src/assets/images/phoneControls/hangup_blue.png
  24. BIN
      src/assets/images/phoneControls/hangup_grey.png
  25. BIN
      src/assets/images/phoneControls/hangup_white.png
  26. BIN
      src/assets/images/phoneControls/hold_blue.png
  27. BIN
      src/assets/images/phoneControls/hold_grey.png
  28. BIN
      src/assets/images/phoneControls/hold_white.png
  29. BIN
      src/assets/images/phoneControls/outbound_blue.png
  30. BIN
      src/assets/images/phoneControls/outbound_grey.png
  31. BIN
      src/assets/images/phoneControls/outbound_white.png
  32. BIN
      src/assets/images/phoneControls/rest_blue.png
  33. BIN
      src/assets/images/phoneControls/rest_grey.png
  34. BIN
      src/assets/images/phoneControls/rest_white.png
  35. BIN
      src/assets/images/phoneControls/talkingDeal_blue.png
  36. BIN
      src/assets/images/phoneControls/talkingDeal_grey.png
  37. BIN
      src/assets/images/phoneControls/talkingDeal_white.png
  38. BIN
      src/assets/images/phoneControls/transfer_blue.png
  39. BIN
      src/assets/images/phoneControls/transfer_grey.png
  40. BIN
      src/assets/images/phoneControls/transfer_white.png
  41. BIN
      src/assets/images/public/404.png
  42. BIN
      src/assets/images/public/NoKnowledge.png
  43. BIN
      src/assets/images/public/empty.png
  44. BIN
      src/assets/images/public/fail.png
  45. BIN
      src/assets/images/public/fileEmpty.png
  46. BIN
      src/assets/images/public/jurisdiction.png
  47. BIN
      src/assets/images/public/letter.png
  48. BIN
      src/assets/images/public/maintain.png
  49. BIN
      src/assets/images/public/noNetwork.png
  50. BIN
      src/assets/images/public/noSearch.png
  51. BIN
      src/assets/images/public/onRecord.png
  52. 4 3
      src/layout/navBars/breadcrumb/telControl.vue
  53. 23 57
      src/views/tels/extension/index.vue

+ 9 - 14
src/api/tels/callLog.ts

@@ -1,23 +1,18 @@
 /*
  * @Author: zc
- * @description 通话记录
- * @version: 
- * @Date: 2022-08-26 14:43:12
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-09-29 10:20:23
+ * @description 话务管理 - 通话记录
  */
 import request from '@/utils/request';
-
 /**
  * @description 分页通话记录列表
- * @param {object} params  
+ * @param {object} params
  * @return {*}
  */
 export const callLogPaged = (params?: object) => {
 	return request({
 		url: `/api/v1/IPPbx/calls/call-list`,
 		method: 'get',
-		params
+		params,
 	});
 };
 /**
@@ -39,9 +34,9 @@ export const callLogOrder = (params?: object) => {
 	return request({
 		url: `/api/v1/IPPbx/canlink-order`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
 /**
  * @description 查询可关联回访
  * @param {object} params
@@ -51,9 +46,9 @@ export const callLogVisit = (params?: object) => {
 	return request({
 		url: `/api/v1/IPPbx/canlink-ordervisit`,
 		method: 'get',
-		params
+		params,
 	});
-}
+};
 /**
  * @description 提交关联
  * @param {object} data
@@ -63,6 +58,6 @@ export const callLogLink = (data: object) => {
 	return request({
 		url: `/api/v1/IPPbx/link-callrecord`,
 		method: 'post',
-		data
+		data,
 	});
-}
+};

+ 17 - 0
src/api/tels/extension.ts

@@ -0,0 +1,17 @@
+/*
+ * @Author: zc
+ * @description 话务管理 - 分机管理
+ */
+/**
+ * @description 分机列表
+ * @param {object} params
+ * @return {*}
+ */
+import request from '@/utils/request';
+export const extensionPaged = (params?: object) => {
+	return request({
+		url: `/api/v1/IPPbx/query-telstate`,
+		method: 'get',
+		params,
+	});
+};

+ 1 - 5
src/api/tels/restApply.ts

@@ -1,10 +1,6 @@
 /*
  * @Author: zc
- * @description 小休申请
- * @version: 
- * @Date: 2022-08-26 14:43:12
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-09-29 10:20:23
+ * @description 话务管理 - 小休申请
  */
 import request from '@/utils/request';
 

BIN
src/assets/images/home/Call.png


BIN
src/assets/images/home/connectionRate.png


BIN
src/assets/images/home/wait.png


BIN
src/assets/images/home/workOrder.png


BIN
src/assets/images/login/bg.png


BIN
src/assets/images/login/changePwd_header.png


BIN
src/assets/images/order/processNormal.png


BIN
src/assets/images/order/processReturn.png


BIN
src/assets/images/order/service.png


BIN
src/assets/images/order/user.png


BIN
src/assets/images/phoneControls/active.png


BIN
src/assets/images/phoneControls/conference_blue.png


BIN
src/assets/images/phoneControls/conference_grey.png


BIN
src/assets/images/phoneControls/conference_white.png


BIN
src/assets/images/phoneControls/dutyOff_blue.png


BIN
src/assets/images/phoneControls/dutyOff_grey.png


BIN
src/assets/images/phoneControls/dutyOff_white.png


BIN
src/assets/images/phoneControls/dutyOn_blue.png


BIN
src/assets/images/phoneControls/dutyOn_white.png


BIN
src/assets/images/phoneControls/hangup_blue.png


BIN
src/assets/images/phoneControls/hangup_grey.png


BIN
src/assets/images/phoneControls/hangup_white.png


BIN
src/assets/images/phoneControls/hold_blue.png


BIN
src/assets/images/phoneControls/hold_grey.png


BIN
src/assets/images/phoneControls/hold_white.png


BIN
src/assets/images/phoneControls/outbound_blue.png


BIN
src/assets/images/phoneControls/outbound_grey.png


BIN
src/assets/images/phoneControls/outbound_white.png


BIN
src/assets/images/phoneControls/rest_blue.png


BIN
src/assets/images/phoneControls/rest_grey.png


BIN
src/assets/images/phoneControls/rest_white.png


BIN
src/assets/images/phoneControls/talkingDeal_blue.png


BIN
src/assets/images/phoneControls/talkingDeal_grey.png


BIN
src/assets/images/phoneControls/talkingDeal_white.png


BIN
src/assets/images/phoneControls/transfer_blue.png


BIN
src/assets/images/phoneControls/transfer_grey.png


BIN
src/assets/images/phoneControls/transfer_white.png


BIN
src/assets/images/public/404.png


BIN
src/assets/images/public/NoKnowledge.png


BIN
src/assets/images/public/empty.png


BIN
src/assets/images/public/fail.png


BIN
src/assets/images/public/fileEmpty.png


BIN
src/assets/images/public/jurisdiction.png


BIN
src/assets/images/public/letter.png


BIN
src/assets/images/public/maintain.png


BIN
src/assets/images/public/noNetwork.png


BIN
src/assets/images/public/noSearch.png


BIN
src/assets/images/public/onRecord.png


+ 4 - 3
src/layout/navBars/breadcrumb/telControl.vue

@@ -987,7 +987,7 @@ const onMessage = (event: any) => {
 
 		if (data.state == 'busy') {
 			holdStatus(data.private_data); //处理保持
-      sendMsg('busy');
+			sendMsg('busy');
 			if (data.private_data == 'monitoring') {
 				// 三方来电振铃中
 				useTelStatusStore.setPhoneControlState(TelStates.ring);
@@ -1070,7 +1070,7 @@ const onMessage = (event: any) => {
 
 					console.log('呼叫中心:呼入通话中');
 				}
-        sendMsg('busy');
+				sendMsg('busy');
 			}
 		} else if (data.old_state == 'busy') {
 			//挂机后系统可以返回两种状态:acw 话后整理状态 ready 示闲状态,如果不需要acw,可以联系我们后台修改配置,如果需要保留,如果需要再次
@@ -1102,7 +1102,7 @@ const onMessage = (event: any) => {
 // 呼叫中心链接关闭
 const onClose = () => {
 	console.log('呼叫中心断开链接');
-	ElMessage.error('呼叫中心断开链接,请刷新重试');
+	// ElMessage.error('呼叫中心断开链接,请刷新重试');
 };
 // 小休原因
 const restReason = ref(''); // 小休原因
@@ -1162,6 +1162,7 @@ const offDutyFn = () => {
 			state.loading = true;
 			dutyOff()
 				.then(() => {
+					sendMsg('logout');
 					ola.logout(currentTel.value.telNo); //签出
 					setTimeout(() => {
 						ola.close();

+ 23 - 57
src/views/tels/extension/index.vue

@@ -1,23 +1,7 @@
 <template>
 	<div class="tels-callLog-container layout-pd">
 		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt10" inline label-width="100px">
-				<el-form-item label="分机号" prop="CDPN">
-					<el-input v-model="state.queryParams.CDPN" placeholder="请输入被叫号码" clearable @keyup.enter="queryList" />
-				</el-form-item>
-				<el-form-item label="中继号" prop="Gateway">
-					<el-input v-model="state.queryParams.Gateway" placeholder="请输入中继号" clearable @keyup.enter="queryList" />
-				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-					<el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
-						<SvgIcon name="ele-Refresh" class="mr5" />重置
-					</el-button>
-				</el-form-item>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<el-radio-group v-model="state.queryParams.state" class="mb10" @change="queryList">
+			<el-radio-group v-model="telState" class="mb10" @change="queryList">
 				<el-radio label=" "
 					>总数:<el-tag type="">{{ state.tableList.length }}</el-tag></el-radio
 				>
@@ -41,28 +25,30 @@
 				>
 			</el-radio-group>
 			<!-- 表格 -->
-			<el-table :data="state.tableList" v-loading="state.loading">
-				<el-table-column prop="cpn" label="分机号" show-overflow-tooltip width="200"></el-table-column>
-				<el-table-column prop="cdpn" label="是否注册" show-overflow-tooltip width="200">
+			<el-table :data="state.showTableList" v-loading="state.loading">
+				<el-table-column prop="telNo" label="分机号" show-overflow-tooltip width="200"></el-table-column>
+				<el-table-column label="是否注册" show-overflow-tooltip width="200">
 					<template #default="{ row }">
-						<el-tag v-if="row.cdpn" type="success">已注册</el-tag>
+						<el-tag v-if="row.sipState === 'true'" type="success">已注册</el-tag>
 						<el-tag v-else type="danger">未注册</el-tag>
 					</template>
 				</el-table-column>
-				<el-table-column prop="ringTimes" label="注册信息" show-overflow-tooltip></el-table-column>
+				<el-table-column prop="device" label="注册信息" show-overflow-tooltip></el-table-column>
 				<el-table-column label="状态" show-overflow-tooltip width="200">
 					<template #default="{ row }">
-						<el-tag v-if="row.state === 'login'" type="danger">签入</el-tag>
+						<el-tag v-if="row.state === 'login'" type="success">签入</el-tag>
 						<el-tag v-else-if="row.state === 'ready'" type="info">示闲</el-tag>
-						<el-tag v-else-if="row.state === 'unready'" type="success">示忙</el-tag>
-						<el-tag v-else-if="row.state === 'busy'" type="danger">通话</el-tag>
+						<el-tag v-else-if="row.state === 'unready'" type="warning">示忙</el-tag>
+						<el-tag v-else-if="row.state === 'busy'">通话</el-tag>
 						<el-tag v-else-if="row.state === 'acw'" type="info">整理</el-tag>
 						<el-tag v-else-if="row.state === 'logout'" type="danger">签出</el-tag>
 					</template>
 				</el-table-column>
 				<el-table-column label="操作" width="100" fixed="right" align="center">
 					<template #default="{ row }">
-						<el-button link type="primary" @click="onListen(row)" title="监听分机" v-auth="'tels:extension:listen'"> 监听分机 </el-button>
+						<el-button link type="primary" @click="onListen(row)" title="监听分机" v-auth="'tels:extension:listen'" v-if="row.state === 'busy'">
+							监听分机
+						</el-button>
 					</template>
 				</el-table-column>
 				<template #empty>
@@ -77,26 +63,20 @@
 import { computed, onActivated, onDeactivated, onMounted, reactive, ref } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { ElButton } from 'element-plus';
-import { callLogPaged } from '@/api/tels/callLog';
 import signalR from '@/utils/signalR';
 import { ola } from '@/utils/ola_api';
 import { storeToRefs } from 'pinia';
 import { useTelStatus } from '@/stores/telStatus';
+import { extensionPaged } from '@/api/tels/extension';
 
 // 定义变量内容
 const state = reactive(<any>{
-	queryParams: {
-		state: ' ',
-		StaffNo: null, // 分机号
-		CPN: null, // 中继号码
-		CDPN: null, // 分机号
-		Direction: null, // 呼叫类型
-		OnState: null, // 结果
-	},
 	tableList: [], // 列表数据
+	showTableList: [], // 显示的列表数据
 	loading: false, // 加载
 	total: 0, // 总条数
 });
+const telState = ref<string>(' ');
 const useTelStatusStore = useTelStatus();
 const { telStatusInfo } = storeToRefs(useTelStatusStore); // 电话状态
 const ruleFormRef = ref<FormInstance>(); // 表单ref
@@ -104,21 +84,15 @@ const ruleFormRef = ref<FormInstance>(); // 表单ref
 const queryList = async () => {
 	state.loading = true;
 	try {
-		const request = {
-			CPN: state.queryParams.CPN,
-			CDPN: state.queryParams.CDPN,
-			Direction: state.queryParams.Direction,
-			OnState: state.queryParams.OnState,
-			StaffNo: state.queryParams.StaffNo,
-			Gateway: state.queryParams.Gateway,
-		};
-		const response = await callLogPaged(request);
-		state.tableList = response.result?.items ?? [];
-		state.total = response.result?.total ?? 0;
+		const response = await extensionPaged();
+		state.tableList = response.result;
+		state.showTableList = state.tableList;
+		if (telState.value !== ' ') {
+			state.showTableList = state.tableList.filter((item: any) => item.state === telState.value);
+		}
 		state.loading = false;
 	} catch (e) {
 		state.loading = false;
-		console.log(e);
 	}
 };
 /** 重置按钮操作 */
@@ -153,26 +127,18 @@ const acwCount = computed(() => {
 });
 // 监听分机
 const onListen = (row: any) => {
-	console.log(row, '121');
-	ola.monitor(row.cdpn, telStatusInfo.value.telsNo);
+	ola.monitor(row.telNo, telStatusInfo.value.telsNo);
 };
 onMounted(() => {
 	queryList();
 	signalR.joinGroup('BigScreen-SeatState');
 	signalR.SR.on('SeatState', (data: any) => {
-		console.log(data, '分机状态改变');
-		const item = state.tableList.find((item: any) => item.cdpn === data.cdpn);
+		const item = state.tableList.find((item: any) => item.telNo === data.telNo);
 		if (item) {
 			item.state = data.state;
 		}
 	});
 });
-onDeactivated(() => {
-	signalR.leaveGroup('BigScreen-SeatState');
-});
-onActivated(() => {
-	signalR.joinGroup('BigScreen-SeatState');
-});
 </script>
 <style lang="scss" scoped>
 .arrow {