Merge pull request 'master' (#68) from master into test
Reviewed-on: http://git.feashow.cn/feashow/SmartOpsWeb/pulls/68
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="display: flex;justify-content: center">
|
<div style="display: flex;justify-content: center">
|
||||||
<span class="stateIcon" :style="{backgroundColor: filterDictClass(cacheStore.getDict(dictType), value)}"></span>
|
<span class="stateIcon" :style="{backgroundColor: filterDictClass(cacheStore.getDict(dictType), value)}"></span>
|
||||||
<span>{{tag.label}}</span>
|
<span>{{ tagConfig.label }}</span>
|
||||||
<span> {{ filterDict(cacheStore.getDict(dictType), value) }}</span>
|
<span> {{ filterDict(cacheStore.getDict(dictType), value) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -21,37 +21,42 @@ const props = defineProps({
|
|||||||
default: null
|
default: null
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const tag = reactive({
|
const tagConfig = reactive({
|
||||||
listClass: "green",
|
listClass: "green",
|
||||||
isType: true,
|
isType: true,
|
||||||
label: ""
|
label: ""
|
||||||
});
|
});
|
||||||
// const dictList = cacheStore.getDict(props.dictType);
|
|
||||||
// const dictFormat = () => {
|
|
||||||
// if(dictList===undefined) return;
|
|
||||||
// for (let i = 0; i < dictList.length; i++) {
|
|
||||||
// if(dictList[i].value=== props.value){
|
|
||||||
// tag.label = dictList[i].label;
|
|
||||||
// tag.listClass=changeParams(dictList[i].listClass)
|
|
||||||
// tag.isType = dictList[i].isType;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
const filterDictClass = (data, value) => {
|
const filterDictClass = (data, value) => {
|
||||||
if(!data) return
|
if (!data) return
|
||||||
|
if (data instanceof Array) {
|
||||||
if(data instanceof Array) {
|
tagConfig.value = data.find(item => item.value == value)
|
||||||
tag.value = data.find(item => item.value == value)
|
if (!tagConfig.value) {
|
||||||
|
return '#409EFF'
|
||||||
|
} else {
|
||||||
|
if (tagConfig.value?.isType) {
|
||||||
|
return changeParams(tagConfig.value.listClass)
|
||||||
|
} else {
|
||||||
|
return tagConfig.value.listClass
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return changeParams(tag.value.listClass)
|
|
||||||
}
|
}
|
||||||
const filterDict = (data, value) => {
|
const filterDict = (data, value) => {
|
||||||
if(!data) return
|
if (!data || value == null) return
|
||||||
|
if (data instanceof Array) {
|
||||||
if(data instanceof Array) {
|
if (value == true || value == false) {
|
||||||
tag.value = data.find(item => item.value == value)
|
tagConfig.value = data.find(item => item.value == value.toString())
|
||||||
|
} else if (typeof value === "object") {
|
||||||
|
if (value !== null) {
|
||||||
|
tagConfig.value = data.find(item => item.value == value[0])
|
||||||
|
} else {
|
||||||
|
tagConfig.value = {}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tagConfig.value = data.find(item => item.value == value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return tag.value.label
|
return tagConfig.value?.label || '未知'
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 根据接口返回的listClass切换成对应的颜色
|
* 根据接口返回的listClass切换成对应的颜色
|
||||||
@@ -63,18 +68,17 @@ const changeParams = (listClass) => {
|
|||||||
case 'danger':
|
case 'danger':
|
||||||
return 'red'
|
return 'red'
|
||||||
case 'success':
|
case 'success':
|
||||||
return '#67C23A'
|
return '#67C23A'
|
||||||
case 'info':
|
case 'info':
|
||||||
return '#909399'
|
return '#909399'
|
||||||
case 'primary':
|
case 'primary':
|
||||||
return '#409EFF'
|
return '#409EFF'
|
||||||
case 'warning':
|
case 'warning':
|
||||||
return '#E6A23C'
|
return '#E6A23C'
|
||||||
default:
|
default:
|
||||||
return listClass
|
return listClass
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// dictFormat()
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@@ -85,7 +89,7 @@ const changeParams = (listClass) => {
|
|||||||
// background-color: green;
|
// background-color: green;
|
||||||
// z-index: 99999;
|
// z-index: 99999;
|
||||||
//}
|
//}
|
||||||
:deep(.el-tag){
|
:deep(.el-tag) {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-top: 9px;
|
margin-top: 9px;
|
||||||
margin-right: 7px;
|
margin-right: 7px;
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { time } from "echarts";
|
|||||||
import { defineExpose } from "vue";
|
import { defineExpose } from "vue";
|
||||||
import { defineProps } from "vue";
|
import { defineProps } from "vue";
|
||||||
import { orderGetDetails } from "@/api/order/order.js"
|
import { orderGetDetails } from "@/api/order/order.js"
|
||||||
|
|
||||||
//控制显示隐藏
|
//控制显示隐藏
|
||||||
const dialogVisible = ref(false);
|
const dialogVisible = ref(false);
|
||||||
|
|
||||||
@@ -14,8 +13,8 @@ const props = defineProps({
|
|||||||
rowData: Object
|
rowData: Object
|
||||||
})
|
})
|
||||||
let opsCallList = ref([]);
|
let opsCallList = ref([]);
|
||||||
// let mergedData = ref([]);
|
let orderData = ref([]);
|
||||||
|
let orderContent = ref([]);
|
||||||
const open = (row) => {
|
const open = (row) => {
|
||||||
dialogVisible.value = true;
|
dialogVisible.value = true;
|
||||||
};
|
};
|
||||||
@@ -29,59 +28,10 @@ const getData = async () => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(() => props.rowData, (newRowData) => {
|
let content = [
|
||||||
if (newRowData) {
|
|
||||||
// console.log(getData(newRowData));
|
|
||||||
getData(newRowData).then((data) => {
|
|
||||||
const dataDetails = data.data.opsCallList
|
|
||||||
// console.log(dataDetails);
|
|
||||||
const theData=[{createTime:'',data:[]}]
|
|
||||||
|
|
||||||
dataDetails.forEach(for1data => {
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
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初始值非空时也能触发
|
|
||||||
});
|
|
||||||
// getData()
|
|
||||||
function omitCreateTime(item) {
|
|
||||||
const { createTime, ...rest } = item;
|
|
||||||
return rest;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const test = [
|
|
||||||
{
|
{
|
||||||
content: "待处理",
|
content: "待处理",
|
||||||
timestamp: "2022-07-20 20:00",
|
timestamp: "orderData.value",
|
||||||
color: "#0bbd87",
|
color: "#0bbd87",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -98,6 +48,64 @@ const test = [
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
watch(() => props.rowData, (newRowData) => {
|
||||||
|
if (newRowData) {
|
||||||
|
// console.log(getData(newRowData));
|
||||||
|
getData(newRowData).then((data) => {
|
||||||
|
opsCallList.value=[]
|
||||||
|
orderData.value = data.data
|
||||||
|
//电话拨打记录
|
||||||
|
const dataDetails = data.data.opsCallList
|
||||||
|
// console.log(dataDetails);
|
||||||
|
const theData = [{ createTime: '', data: [] }]
|
||||||
|
|
||||||
|
dataDetails.forEach(for1data => {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
theData.pop()
|
||||||
|
// console.log(theData);
|
||||||
|
theData.forEach(item => {
|
||||||
|
opsCallList.value.push(item)
|
||||||
|
})
|
||||||
|
//工单时间线
|
||||||
|
orderContent.value=[]
|
||||||
|
console.log(orderData.value);
|
||||||
|
content.map((item, index) => {
|
||||||
|
if (index === 0) {
|
||||||
|
item.timestamp = orderData.value.operationTime || '--'
|
||||||
|
} else if (index === 1) {
|
||||||
|
item.timestamp = orderData.value.processedTime || '--'
|
||||||
|
|
||||||
|
} else {
|
||||||
|
item.timestamp = orderData.value.completionTime || '--'
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
content.forEach(item => {
|
||||||
|
orderContent.value.push(item)
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(orderContent.value);
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
immediate: true // 立即执行一次,以便在rowData初始值非空时也能触发
|
||||||
|
});
|
||||||
|
// getData()
|
||||||
|
|
||||||
|
|
||||||
const test2 = [
|
const test2 = [
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -145,9 +153,9 @@ defineExpose({
|
|||||||
<el-aside width="200px" :style="{ position: 'static' }">
|
<el-aside width="200px" :style="{ position: 'static' }">
|
||||||
<div class="aside-content">
|
<div class="aside-content">
|
||||||
<el-timeline style="max-width: 600px">
|
<el-timeline style="max-width: 600px">
|
||||||
<el-timeline-item v-for="(activity, index) in test" :key="index" :icon="activity.icon"
|
<el-timeline-item v-for="(activity, index) in orderContent" :key="index"
|
||||||
:type="activity.type" :color="activity.color" :size="activity.size"
|
:icon="activity.icon" :type="activity.type" :color="activity.color"
|
||||||
:hollow="activity.hollow" :timestamp="activity.timestamp">
|
:size="activity.size" :hollow="activity.hollow" :timestamp="activity.timestamp">
|
||||||
<p style="font-size: 17px;"> {{ activity.content }}</p>
|
<p style="font-size: 17px;"> {{ activity.content }}</p>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
</el-timeline>
|
</el-timeline>
|
||||||
@@ -207,6 +215,7 @@ defineExpose({
|
|||||||
<div>
|
<div>
|
||||||
<span :style="{ color: '#a8abb2' }">{{ info.callIdNumber
|
<span :style="{ color: '#a8abb2' }">{{ info.callIdNumber
|
||||||
}}</span>
|
}}</span>
|
||||||
|
<PointTag dictType="call_status" :value="info.callState" />
|
||||||
<span :style="{
|
<span :style="{
|
||||||
color: info.callState === '通话中' ? '#6cc23a' : '#409eff'
|
color: info.callState === '通话中' ? '#6cc23a' : '#409eff'
|
||||||
}">{{ info.callState }}</span>
|
}">{{ info.callState }}</span>
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ const tableConfig = reactive({
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
api: '/order/list',
|
api: '/order/list',
|
||||||
params: {state:"1",name:"已处理"},
|
params: {orderState:"2"},
|
||||||
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: {state:"0",name:"待处理"},
|
params: {orderState:"0"},
|
||||||
btns: [
|
btns: [
|
||||||
// {name: '新增', key: 'add', color: '#DED0B2', auth: auths.report},
|
// {name: '新增', key: 'add', color: '#DED0B2', auth: auths.report},
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user