feat:处理了电话详细数据

This commit is contained in:
KindSeven
2024-09-15 22:11:26 +08:00
parent 43ad0f03fd
commit 6c60c48c61
8 changed files with 77 additions and 47 deletions

2
.gitignore vendored
View File

@@ -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/

View File

@@ -25,6 +25,6 @@ defineExpose({
<style> <style>
.box{ .box{
height: 65vh; height: 68vh;
} }
</style> </style>

View File

@@ -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;

View File

@@ -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);

View File

@@ -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>

View File

@@ -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},
] ]

View File

@@ -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},
] ]

View File

@@ -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",