feat:处理了电话详细数据
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -13,6 +13,8 @@ dist
|
|||||||
dist-ssr
|
dist-ssr
|
||||||
coverage
|
coverage
|
||||||
*.local
|
*.local
|
||||||
|
vite.config.js
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
/cypress/videos/
|
/cypress/videos/
|
||||||
/cypress/screenshots/
|
/cypress/screenshots/
|
||||||
|
|||||||
@@ -25,6 +25,6 @@ defineExpose({
|
|||||||
|
|
||||||
<style>
|
<style>
|
||||||
.box{
|
.box{
|
||||||
height: 65vh;
|
height: 68vh;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ const initWebSocket = () => {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.live-call {
|
.live-call {
|
||||||
width: 48%;
|
width: 48%;
|
||||||
height: 47.5vh;
|
height: 47vh;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border: 1px solid #d5d4d4;
|
border: 1px solid #d5d4d4;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import LiveCall from '@/components/liveCall/index.vue'
|
import LiveCall from '@/components/liveCall/index.vue'
|
||||||
import Voice from '@/components/voice/index.vue'
|
import Voice from '@/components/Voice/index.vue'
|
||||||
import infoLiveCall from '@/components/infoLiveCall/index.vue'
|
import infoLiveCall from '@/components/infoLiveCall/index.vue'
|
||||||
const infoLiveCallRef=ref()
|
const infoLiveCallRef=ref()
|
||||||
const voiceRef=ref()
|
const voiceRef=ref()
|
||||||
@@ -97,7 +97,7 @@ const tableConfig = reactive({
|
|||||||
label: '操作',
|
label: '操作',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
// width: 150,
|
width: 200,
|
||||||
showOverflowTooltip: false,
|
showOverflowTooltip: false,
|
||||||
currentRender: ({ row, index }) => {
|
currentRender: ({ row, index }) => {
|
||||||
// console.log(row);
|
// console.log(row);
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ const dialogVisible = ref(false);
|
|||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
rowData: Object
|
rowData: Object
|
||||||
})
|
})
|
||||||
let dataDetails = ref();
|
|
||||||
let opsCallList = ref([]);
|
let opsCallList = ref([]);
|
||||||
|
// let mergedData = ref([]);
|
||||||
|
|
||||||
const open = (row) => {
|
const open = (row) => {
|
||||||
dialogVisible.value = true;
|
dialogVisible.value = true;
|
||||||
};
|
};
|
||||||
@@ -32,21 +33,48 @@ watch(() => props.rowData, (newRowData) => {
|
|||||||
if (newRowData) {
|
if (newRowData) {
|
||||||
// console.log(getData(newRowData));
|
// console.log(getData(newRowData));
|
||||||
getData(newRowData).then((data) => {
|
getData(newRowData).then((data) => {
|
||||||
// console.log(data.data);
|
const dataDetails = data.data.opsCallList
|
||||||
dataDetails = data.data.opsCallList
|
|
||||||
// console.log(dataDetails);
|
// console.log(dataDetails);
|
||||||
// opsCallList = dataDetails.opsCallList
|
const theData=[{createTime:'',data:[]}]
|
||||||
dataDetails.forEach(item => {
|
|
||||||
// console.log(item);
|
dataDetails.forEach(for1data => {
|
||||||
opsCallList.value.push(item)
|
theData.forEach(for2data => {
|
||||||
|
if(for1data.createTime!==for2data.createTime){
|
||||||
|
console.log(for2data);
|
||||||
|
for2data.createTime=for1data.createTime
|
||||||
|
// for2data.data.push(for1data)
|
||||||
|
theData.push({createTime:for1data.createTime,data:[]})
|
||||||
|
}else{
|
||||||
|
for2data.data.push(for1data)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
})
|
||||||
});
|
});
|
||||||
// console.log(opsCallList);
|
theData.pop()
|
||||||
|
// console.log(theData);
|
||||||
|
theData.forEach(item => {
|
||||||
|
opsCallList.value.push(item)
|
||||||
|
})
|
||||||
|
console.log(opsCallList.value);
|
||||||
|
|
||||||
|
|
||||||
|
// dataDetails.forEach(item => {
|
||||||
|
// // console.log(item);
|
||||||
|
// opsCallList.value.push(item)
|
||||||
|
// });
|
||||||
|
|
||||||
|
// console.log(mergedData.value);
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
immediate: true // 立即执行一次,以便在rowData初始值非空时也能触发
|
immediate: true // 立即执行一次,以便在rowData初始值非空时也能触发
|
||||||
});
|
});
|
||||||
// getData()
|
// getData()
|
||||||
|
function omitCreateTime(item) {
|
||||||
|
const { createTime, ...rest } = item;
|
||||||
|
return rest;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -82,22 +110,22 @@ const test2 = [
|
|||||||
size: "large",
|
size: "large",
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
const data = [
|
// const data = [
|
||||||
{
|
// {
|
||||||
number: '17628661307',
|
// number: '17628661307',
|
||||||
state: '通话中',
|
// state: '通话中',
|
||||||
time: '18 : 32',
|
// time: '18 : 32',
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
number: '17628661307',
|
// number: '17628661307',
|
||||||
state: '已接通',
|
// state: '已接通',
|
||||||
time: '18 : 32',
|
// time: '18 : 32',
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
number: '17628661307',
|
// number: '17628661307',
|
||||||
state: '已接通',
|
// state: '已接通',
|
||||||
time: '18 : 32',
|
// time: '18 : 32',
|
||||||
}]
|
// }]
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
});
|
});
|
||||||
@@ -107,7 +135,7 @@ defineExpose({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<el-dialog v-model="dialogVisible" :show-close=true title="工单详情" width="80%" overflow: auto>
|
<el-dialog v-model="dialogVisible" :show-close=true title="工单详情" width="80%">
|
||||||
<div class="common-layout">
|
<div class="common-layout">
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-header class="header"><span>工单号:</span>
|
<el-header class="header"><span>工单号:</span>
|
||||||
@@ -140,7 +168,7 @@ defineExpose({
|
|||||||
<div>
|
<div>
|
||||||
<div>工单内容:</div>
|
<div>工单内容:</div>
|
||||||
<div class="textBox">
|
<div class="textBox">
|
||||||
<el-scrollbar >
|
<el-scrollbar>
|
||||||
<div class="text">{{ rowData.orderContent }}</div>
|
<div class="text">{{ rowData.orderContent }}</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
@@ -148,7 +176,7 @@ defineExpose({
|
|||||||
<div>
|
<div>
|
||||||
<div>处理内容:</div>
|
<div>处理内容:</div>
|
||||||
<div class="textBox">
|
<div class="textBox">
|
||||||
<el-scrollbar >
|
<el-scrollbar>
|
||||||
<div class="text">{{ rowData.processedContent }}</div>
|
<div class="text">{{ rowData.processedContent }}</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
@@ -157,7 +185,7 @@ defineExpose({
|
|||||||
<div>
|
<div>
|
||||||
<div>录音信息:</div>
|
<div>录音信息:</div>
|
||||||
<div class="textBox">
|
<div class="textBox">
|
||||||
<el-scrollbar >
|
<el-scrollbar>
|
||||||
<div class="text">{{ rowData.recordUrl }}</div>
|
<div class="text">{{ rowData.recordUrl }}</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
@@ -175,17 +203,17 @@ defineExpose({
|
|||||||
:size="activity.size">
|
:size="activity.size">
|
||||||
<div class="custom-card">
|
<div class="custom-card">
|
||||||
<div>{{ activity.createTime }}</div>
|
<div>{{ activity.createTime }}</div>
|
||||||
<!-- <div v-for="(info, index) in data" :key="index"> -->
|
<div v-for="(info, index) in activity.data" :key="index">
|
||||||
<div>
|
<div>
|
||||||
<span :style="{ color: '#a8abb2' }">{{ activity.callIdNumber
|
<span :style="{ color: '#a8abb2' }">{{ info.callIdNumber
|
||||||
}}</span>
|
}}</span>
|
||||||
<span :style="{
|
<span :style="{
|
||||||
color: activity.callState === '通话中' ? '#6cc23a' : '#409eff'
|
color: info.callState === '通话中' ? '#6cc23a' : '#409eff'
|
||||||
}">{{ activity.callState }}</span>
|
}">{{ info.callState }}</span>
|
||||||
<span class="span-3th" :style="{ color: '#a8abb2' }">{{
|
<span class="span-3th" :style="{ color: '#a8abb2' }">{{
|
||||||
activity.answer_time }}</span>
|
info.answer_time }}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- </div> -->
|
|
||||||
</div>
|
</div>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
</el-timeline>
|
</el-timeline>
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ const tableConfig = reactive({
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
api: '/order/list',
|
api: '/order/list',
|
||||||
params: {},
|
params: {state:"1",name:"已处理"},
|
||||||
btns: [
|
btns: [
|
||||||
// {name: '新增', key: 'add', color: '#DED0B2', auth: auths.report},
|
// {name: '新增', key: 'add', color: '#DED0B2', auth: auths.report},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ const tableConfig = reactive({
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
api: '/order/list',
|
api: '/order/list',
|
||||||
params: {},
|
params: {state:"0",name:"待处理"},
|
||||||
btns: [
|
btns: [
|
||||||
// {name: '新增', key: 'add', color: '#DED0B2', auth: auths.report},
|
// {name: '新增', key: 'add', color: '#DED0B2', auth: auths.report},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -76,10 +76,10 @@ export default defineConfig({
|
|||||||
// rewrite: (path) => path.replace(/^\/api/, ""),
|
// rewrite: (path) => path.replace(/^\/api/, ""),
|
||||||
// },
|
// },
|
||||||
"/api": {
|
"/api": {
|
||||||
// target: "http://frp.feashow.cn:31800/",
|
target: "http://frp.feashow.cn:31800/",
|
||||||
target: "http://112.19.165.99:20002/",
|
// target: "http://112.19.165.99:20002/",
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
// rewrite: (path) => path.replace(/^\/api/, ""),
|
rewrite: (path) => path.replace(/^\/api/, ""),
|
||||||
},
|
},
|
||||||
// "/socket": {
|
// "/socket": {
|
||||||
// target: "ws://frp.feashow.cn:8081/ws",
|
// target: "ws://frp.feashow.cn:8081/ws",
|
||||||
|
|||||||
Reference in New Issue
Block a user