客户服务
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run

This commit is contained in:
FLL 2025-07-25 10:03:30 +08:00
parent 9131eb0e44
commit 44e2c1fd4a
4 changed files with 26 additions and 22 deletions

View File

@ -25,7 +25,6 @@ async function fetchWorkOrderCount() {
seriesData.value = board.value.recentWeekWorkOrders.map(item => {
return `${item.count}`;
});
console.log(xAxisData.value,seriesData.value)
renderWorkOrderCount({
tooltip: { trigger: 'axis' },
xAxis: {
@ -85,24 +84,21 @@ async function fetchSatisfactionLevel() {
const orderNumber = ref<EchartsUIType>();
const { renderEcharts: renderOrderNumber } = useEcharts(orderNumber);
async function fetchOrderNumber() {
seriesData.value = board.value.recentSixMonthWorkOrders.map(item => [
item.month, //
item.orderCount //
])
seriesData.value.unshift(['product','入驻员工'])
renderOrderNumber({
title: {text: '近半年工单数',left: '18px'},
legend: {},
tooltip: { trigger: 'axis' },
dataset: {
source: [
['product', '物业', '入驻员工'],
['2025-01', 2, 5.8],
['2025-02', 10.1, 7.4],
['2025-03', 6.4, 5.2],
['2025-04', 3.3, 5.8],
['2025-05', 8.1, 7.4],
['2025-06', 6.4, 5.2],
]
source: seriesData.value
},
xAxis: { type: 'category' },
yAxis: {},
series: [{ type: 'bar' }, { type: 'bar' }]
series: [{ type: 'bar' }]
})
}
@ -110,6 +106,16 @@ async function fetchOrderNumber() {
const orderTyper = ref<EchartsUIType>();
const { renderEcharts: renderOrderTyper } = useEcharts(orderTyper);
async function fetchOrderTyper() {
seriesData.value = board.value.satisfactionChartList.map(item => {
return {
value: item.quantity,
name: item.type,
};
})
const totalQuantity = board.value.satisfactionChartList.reduce((sum, item) => {
return sum + Number(item.quantity || 0);
}, 0);
console.log(seriesData.value)
renderOrderTyper({
title: {text: '工单类型分类占比',left: '18px',top: '18px'},
tooltip: {
@ -131,7 +137,10 @@ async function fetchOrderTyper() {
label: {
show: true,
position: 'center',
formatter: '员工单数量\n{num|56个}',
formatter: [
'员工单数量',
`{num|${totalQuantity}个}`
].join('\n'),
fontSize: 14,
fontWeight: 'bold',
color: 'gray',
@ -148,13 +157,7 @@ async function fetchOrderTyper() {
labelLine: {
show: false
},
data: [
{ value: 1048, name: 'Search Engine' },
{ value: 735, name: 'Direct' },
{ value: 580, name: 'Email' },
{ value: 484, name: 'Union Ads' },
{ value: 300, name: 'Video Ads' }
]
data: seriesData.value
}
]
})
@ -232,7 +235,7 @@ onMounted(async () => {
<div style="font-size: 20px;font-weight: bold;margin-bottom: 20px;color: #464646">工单计数</div>
<div style="margin-left: 20px;line-height: 30px">
<div>累计处理工单数</div>
<div>12</div>
<div>{{board.recentWeekWorkOrders?.[0]?.weekCount || '0'}}</div>
<!-- <div>累计回复数</div>-->
<!-- <div>2</div>-->
</div>

View File

@ -48,7 +48,7 @@ export const columns: VxeGridProps['columns'] = [
},
{
title: '发布人',
field: 'issuers',
field: 'issuersName',
},
{
field: 'action',

View File

@ -44,7 +44,7 @@ async function handleOpenChange(open: boolean) {
/>
</DescriptionsItem>
<DescriptionsItem label="通知人">
{{ noticesDetail.noticePersion }}
{{ noticesDetail.noticePersionName }}
</DescriptionsItem>
<DescriptionsItem label="开始时间">
{{ noticesDetail.startTime }}

View File

@ -64,6 +64,7 @@ const [BasicModal, modalApi] = useVbenModal({
if(record.isAll === '0'){
record.noticePersion = null
}
record.noticePersion = record.noticePersion?.split(',')
await formApi.setValues(record);
}
await markInitialized();