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

This commit is contained in:
fyy 2025-07-25 12:01:21 +08:00
commit 1695f017b0
7 changed files with 42 additions and 32 deletions

View File

@ -144,6 +144,9 @@ export interface PersonForm extends BaseEntity {
*/
authGroupId?: string | number
begDate?: string
endDate?: string
}
export interface PersonQuery extends PageQuery {

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

View File

@ -212,16 +212,6 @@ export const modalSchema: FormSchemaGetter = () => [
fieldName: 'carNumber',
component: 'Input',
},
{
label: '人脸图片',
fieldName: 'img',
component: 'ImageUpload',
componentProps: {
// accept: 'image/*', // 可选拓展名或者mime类型 ,拼接
maxCount: 1, // 最大上传文件数 默认为1 为1会绑定为string而非string[]类型
},
formItemClass: 'col-span-2',
},
{
label: '授权期限',
fieldName: 'authTime',
@ -257,6 +247,16 @@ export const modalSchema: FormSchemaGetter = () => [
},
rules: 'required',
},
{
label: '人脸图片',
fieldName: 'img',
component: 'ImageUpload',
componentProps: {
// accept: 'image/*', // 可选拓展名或者mime类型 ,拼接
maxCount: 1, // 最大上传文件数 默认为1 为1会绑定为string而非string[]类型
},
formItemClass: 'col-span-2',
},
{
label: '备注',
fieldName: 'remark',

View File

@ -94,6 +94,9 @@ async function handleConfirm() {
if(unitName.value){
data.unitName = unitName.value
}
data.begDate = data.authTime[0]
data.endDate = data.authTime[1]
await (isUpdate.value ? personUpdate(data) : personAdd(data));
resetInitialized();
emit('reload');