Merge branch 'master' of http://47.109.37.87:3000/by2025/admin-vben5
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
Some checks are pending
Gitea Actions Demo / Explore-Gitea-Actions (push) Waiting to run
This commit is contained in:
commit
1695f017b0
@ -144,6 +144,9 @@ export interface PersonForm extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
authGroupId?: string | number
|
authGroupId?: string | number
|
||||||
|
|
||||||
|
begDate?: string
|
||||||
|
|
||||||
|
endDate?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface PersonQuery extends PageQuery {
|
export interface PersonQuery extends PageQuery {
|
||||||
|
@ -25,7 +25,6 @@ async function fetchWorkOrderCount() {
|
|||||||
seriesData.value = board.value.recentWeekWorkOrders.map(item => {
|
seriesData.value = board.value.recentWeekWorkOrders.map(item => {
|
||||||
return `${item.count}`;
|
return `${item.count}`;
|
||||||
});
|
});
|
||||||
console.log(xAxisData.value,seriesData.value)
|
|
||||||
renderWorkOrderCount({
|
renderWorkOrderCount({
|
||||||
tooltip: { trigger: 'axis' },
|
tooltip: { trigger: 'axis' },
|
||||||
xAxis: {
|
xAxis: {
|
||||||
@ -85,24 +84,21 @@ async function fetchSatisfactionLevel() {
|
|||||||
const orderNumber = ref<EchartsUIType>();
|
const orderNumber = ref<EchartsUIType>();
|
||||||
const { renderEcharts: renderOrderNumber } = useEcharts(orderNumber);
|
const { renderEcharts: renderOrderNumber } = useEcharts(orderNumber);
|
||||||
async function fetchOrderNumber() {
|
async function fetchOrderNumber() {
|
||||||
|
seriesData.value = board.value.recentSixMonthWorkOrders.map(item => [
|
||||||
|
item.month, // 月份(对应目标结构的第一个元素)
|
||||||
|
item.orderCount // 工单数量(对应目标结构的第二个元素)
|
||||||
|
])
|
||||||
|
seriesData.value.unshift(['product','入驻员工'])
|
||||||
renderOrderNumber({
|
renderOrderNumber({
|
||||||
title: {text: '近半年工单数',left: '18px'},
|
title: {text: '近半年工单数',left: '18px'},
|
||||||
legend: {},
|
legend: {},
|
||||||
tooltip: { trigger: 'axis' },
|
tooltip: { trigger: 'axis' },
|
||||||
dataset: {
|
dataset: {
|
||||||
source: [
|
source: seriesData.value
|
||||||
['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],
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
xAxis: { type: 'category' },
|
xAxis: { type: 'category' },
|
||||||
yAxis: {},
|
yAxis: {},
|
||||||
series: [{ type: 'bar' }, { type: 'bar' }]
|
series: [{ type: 'bar' }]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,6 +106,16 @@ async function fetchOrderNumber() {
|
|||||||
const orderTyper = ref<EchartsUIType>();
|
const orderTyper = ref<EchartsUIType>();
|
||||||
const { renderEcharts: renderOrderTyper } = useEcharts(orderTyper);
|
const { renderEcharts: renderOrderTyper } = useEcharts(orderTyper);
|
||||||
async function fetchOrderTyper() {
|
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({
|
renderOrderTyper({
|
||||||
title: {text: '工单类型分类占比',left: '18px',top: '18px'},
|
title: {text: '工单类型分类占比',left: '18px',top: '18px'},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
@ -131,7 +137,10 @@ async function fetchOrderTyper() {
|
|||||||
label: {
|
label: {
|
||||||
show: true,
|
show: true,
|
||||||
position: 'center',
|
position: 'center',
|
||||||
formatter: '员工单数量\n{num|56个}',
|
formatter: [
|
||||||
|
'员工单数量',
|
||||||
|
`{num|${totalQuantity}个}`
|
||||||
|
].join('\n'),
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: 'bold',
|
fontWeight: 'bold',
|
||||||
color: 'gray',
|
color: 'gray',
|
||||||
@ -148,13 +157,7 @@ async function fetchOrderTyper() {
|
|||||||
labelLine: {
|
labelLine: {
|
||||||
show: false
|
show: false
|
||||||
},
|
},
|
||||||
data: [
|
data: seriesData.value
|
||||||
{ value: 1048, name: 'Search Engine' },
|
|
||||||
{ value: 735, name: 'Direct' },
|
|
||||||
{ value: 580, name: 'Email' },
|
|
||||||
{ value: 484, name: 'Union Ads' },
|
|
||||||
{ value: 300, name: 'Video Ads' }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
@ -232,7 +235,7 @@ onMounted(async () => {
|
|||||||
<div style="font-size: 20px;font-weight: bold;margin-bottom: 20px;color: #464646">工单计数</div>
|
<div style="font-size: 20px;font-weight: bold;margin-bottom: 20px;color: #464646">工单计数</div>
|
||||||
<div style="margin-left: 20px;line-height: 30px">
|
<div style="margin-left: 20px;line-height: 30px">
|
||||||
<div>累计处理工单数</div>
|
<div>累计处理工单数</div>
|
||||||
<div>12</div>
|
<div>{{board.recentWeekWorkOrders?.[0]?.weekCount || '0'}}</div>
|
||||||
<!-- <div>累计回复数</div>-->
|
<!-- <div>累计回复数</div>-->
|
||||||
<!-- <div>2</div>-->
|
<!-- <div>2</div>-->
|
||||||
</div>
|
</div>
|
||||||
|
@ -48,7 +48,7 @@ export const columns: VxeGridProps['columns'] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '发布人',
|
title: '发布人',
|
||||||
field: 'issuers',
|
field: 'issuersName',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'action',
|
field: 'action',
|
||||||
|
@ -44,7 +44,7 @@ async function handleOpenChange(open: boolean) {
|
|||||||
/>
|
/>
|
||||||
</DescriptionsItem>
|
</DescriptionsItem>
|
||||||
<DescriptionsItem label="通知人">
|
<DescriptionsItem label="通知人">
|
||||||
{{ noticesDetail.noticePersion }}
|
{{ noticesDetail.noticePersionName }}
|
||||||
</DescriptionsItem>
|
</DescriptionsItem>
|
||||||
<DescriptionsItem label="开始时间">
|
<DescriptionsItem label="开始时间">
|
||||||
{{ noticesDetail.startTime }}
|
{{ noticesDetail.startTime }}
|
||||||
|
@ -64,6 +64,7 @@ const [BasicModal, modalApi] = useVbenModal({
|
|||||||
if(record.isAll === '0'){
|
if(record.isAll === '0'){
|
||||||
record.noticePersion = null
|
record.noticePersion = null
|
||||||
}
|
}
|
||||||
|
record.noticePersion = record.noticePersion?.split(',')
|
||||||
await formApi.setValues(record);
|
await formApi.setValues(record);
|
||||||
}
|
}
|
||||||
await markInitialized();
|
await markInitialized();
|
||||||
|
@ -212,16 +212,6 @@ export const modalSchema: FormSchemaGetter = () => [
|
|||||||
fieldName: 'carNumber',
|
fieldName: 'carNumber',
|
||||||
component: 'Input',
|
component: 'Input',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: '人脸图片',
|
|
||||||
fieldName: 'img',
|
|
||||||
component: 'ImageUpload',
|
|
||||||
componentProps: {
|
|
||||||
// accept: 'image/*', // 可选拓展名或者mime类型 ,拼接
|
|
||||||
maxCount: 1, // 最大上传文件数 默认为1 为1会绑定为string而非string[]类型
|
|
||||||
},
|
|
||||||
formItemClass: 'col-span-2',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: '授权期限',
|
label: '授权期限',
|
||||||
fieldName: 'authTime',
|
fieldName: 'authTime',
|
||||||
@ -257,6 +247,16 @@ export const modalSchema: FormSchemaGetter = () => [
|
|||||||
},
|
},
|
||||||
rules: 'required',
|
rules: 'required',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '人脸图片',
|
||||||
|
fieldName: 'img',
|
||||||
|
component: 'ImageUpload',
|
||||||
|
componentProps: {
|
||||||
|
// accept: 'image/*', // 可选拓展名或者mime类型 ,拼接
|
||||||
|
maxCount: 1, // 最大上传文件数 默认为1 为1会绑定为string而非string[]类型
|
||||||
|
},
|
||||||
|
formItemClass: 'col-span-2',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: '备注',
|
label: '备注',
|
||||||
fieldName: 'remark',
|
fieldName: 'remark',
|
||||||
|
@ -94,6 +94,9 @@ async function handleConfirm() {
|
|||||||
if(unitName.value){
|
if(unitName.value){
|
||||||
data.unitName = unitName.value
|
data.unitName = unitName.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data.begDate = data.authTime[0]
|
||||||
|
data.endDate = data.authTime[1]
|
||||||
await (isUpdate.value ? personUpdate(data) : personAdd(data));
|
await (isUpdate.value ? personUpdate(data) : personAdd(data));
|
||||||
resetInitialized();
|
resetInitialized();
|
||||||
emit('reload');
|
emit('reload');
|
||||||
|
Loading…
Reference in New Issue
Block a user