diff --git a/apps/web-antd/src/api/property/attendanceManagement/arrangement/model.d.ts b/apps/web-antd/src/api/property/attendanceManagement/arrangement/model.d.ts index 5dd87db2..596a3177 100644 --- a/apps/web-antd/src/api/property/attendanceManagement/arrangement/model.d.ts +++ b/apps/web-antd/src/api/property/attendanceManagement/arrangement/model.d.ts @@ -43,6 +43,7 @@ export interface ArrangementVO { userGroupList?: any[]; attendanceGroup?: any; dateType?: number; + areaList: any[]; //区域 } export interface ArrangementForm extends BaseEntity { diff --git a/apps/web-antd/src/api/property/customerService/questionnaire/question/model.d.ts b/apps/web-antd/src/api/property/customerService/questionnaire/question/model.d.ts index 11d169dd..3fc2d1b4 100644 --- a/apps/web-antd/src/api/property/customerService/questionnaire/question/model.d.ts +++ b/apps/web-antd/src/api/property/customerService/questionnaire/question/model.d.ts @@ -1,6 +1,6 @@ -import type { PageQuery, BaseEntity } from '#/api/common'; +import type {PageQuery, BaseEntity} from '#/api/common'; import type { - QuestionItemForm + QuestionItemForm, QuestionItemVO } from "#/api/property/customerService/questionnaire/questionItem/model"; export interface QuestionVO { @@ -39,6 +39,19 @@ export interface QuestionVO { */ sort: number; + /** + * 问题选项 + */ + questionnaireQuestionItemVos: QuestionItemVO[]; + + options: string[]; + + answer: string; + + rate:number; + + checked:string[]; + } export interface QuestionForm extends BaseEntity { @@ -80,17 +93,17 @@ export interface QuestionForm extends BaseEntity { /** * 选项 */ - questionnaireQuestionItems:QuestionItemForm[] + questionnaireQuestionItems: QuestionItemForm[] /** * 评分预览 */ - rate?:number; + rate?: number; /** * 时间预览 */ - dateTime?:string; + dateTime?: string; } @@ -126,7 +139,7 @@ export interface QuestionQuery extends PageQuery { sort?: number; /** - * 日期范围参数 - */ + * 日期范围参数 + */ params?: any; } diff --git a/apps/web-antd/src/api/property/customerService/questionnaire/questionnaire/model.d.ts b/apps/web-antd/src/api/property/customerService/questionnaire/questionnaire/model.d.ts index 97390bf9..73a564e0 100644 --- a/apps/web-antd/src/api/property/customerService/questionnaire/questionnaire/model.d.ts +++ b/apps/web-antd/src/api/property/customerService/questionnaire/questionnaire/model.d.ts @@ -1,5 +1,8 @@ import type { PageQuery, BaseEntity } from '#/api/common'; -import type {QuestionForm} from "#/api/property/customerService/questionnaire/question/model"; +import type { + QuestionForm, + QuestionVO +} from "#/api/property/customerService/questionnaire/question/model"; export interface QuestionnaireVO { /** @@ -36,7 +39,10 @@ export interface QuestionnaireVO { * 状态(1草稿2已发布3未发布) */ status: string; - + /** + * 问题 + */ + questionnaireQuestionVos:QuestionVO[]; } export interface QuestionnaireForm extends BaseEntity { diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts index 9f0abf52..fe433e70 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts +++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts @@ -19,9 +19,20 @@ export const columns: VxeGridProps['columns'] = [ width: 'auto', }, { - title: '摄像机id', - field: 'deviceManageId', + title: '摄像机', + field: 'areaDevice', minWidth: 300, + slots: { + default: ({ row }: { row: any }) => { + if (!row.areaDevice || !Array.isArray(row.areaDevice)) { + return ''; + } + return row.areaDevice + .map((device: any) => device.remoteSisDeviceManage?.deviceName || '') + .filter((deviceName: string) => deviceName) + .join(', '); + }, + }, }, { diff --git a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/arrangement-modal.vue b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/arrangement-modal.vue index cc36d025..c497417f 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/arrangement-modal.vue +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/arrangement-modal.vue @@ -31,7 +31,7 @@ let formModal = reactive<{ dateType: number | undefined; startDate: string; endDate: string; - areaId: string; + areaId: string[]; userGroupList: any[]; }>({ id: '', @@ -43,7 +43,7 @@ let formModal = reactive<{ // dateRange: [null, null], startDate: '', //开始日期 endDate: '', //结束日期 - areaId: '', //区域 + areaId: [], //区域 userGroupList: [ // scheduleId:undefined,//排班ID // employeeId:undefined,//员工ID @@ -77,7 +77,7 @@ const columns = [ }, { title: '部门', - dataIndex: ['dept', 'unitName'], + dataIndex: ['dept', 'deptName'], key: 'dept', width: 120, customRender: ({ @@ -313,7 +313,7 @@ async function handleConfirm() { dateType: undefined, startDate: '', endDate: '', - areaId: '', + areaId: [], userGroupList: [], }); // 重置其他数据 @@ -338,7 +338,7 @@ async function handleClosed() { dateType: undefined, startDate: '', endDate: '', - areaId: '', + areaId: [], userGroupList: [], }); @@ -422,6 +422,7 @@ onMounted(() => {}); v-model:value="formModal.areaId" :options="areaOptions" placeholder="请选择" + mode="multiple" @change="chooseGroup" /> @@ -442,7 +443,7 @@ onMounted(() => {}); :columns="columns" :dataSource="tableData" :pagination="false" - rowKey="dept.unitId" + rowKey="dept.deptId" bordered /> diff --git a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/calendarView.vue b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/calendarView.vue index a91c95b9..6f33ca09 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/calendarView.vue +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/calendarView.vue @@ -160,9 +160,7 @@ const scheduleData: { date: string; list: { type: BadgeProps['status']; content: string }[]; }[] = [ - { date: '2025-07-08', list: [{ type: 'warning', content: '7月8日事件' }] }, - { date: '2025-07-06', list: [{ type: 'success', content: '8月8日事件' }] }, - // ... + //组件需要数据结构 { date: '2025-07-08', list: [{ type: 'warning', content: '7月8日事件' }] }, ]; // 切换视图模式 function handleViewModeChange(e: RadioChangeEvent): void { @@ -180,45 +178,11 @@ const getListData2 = ( if (found) { return found.list; } - } // 如果没有找到数据,返回空数组 return []; }; -const getListData = ( - value: Dayjs, -): { type: BadgeProps['status']; content: string }[] => { - let listData: { type: BadgeProps['status']; content: string }[] | undefined; - switch (value.date()) { - case 8: - listData = [ - { type: 'warning', content: 'This is warning event.' }, - { type: 'success', content: 'This is usual event.' }, - ]; - break; - case 10: - listData = [ - { type: 'warning', content: 'This is warning event.' }, - { type: 'success', content: 'This is usual event.' }, - { type: 'error', content: 'This is error event.' }, - ]; - break; - case 15: - listData = [ - { type: 'warning', content: 'This is warning event' }, - { type: 'success', content: 'This is very long usual event。。....' }, - { type: 'error', content: 'This is error event 1.' }, - { type: 'error', content: 'This is error event 2.' }, - { type: 'error', content: 'This is error event 3.' }, - { type: 'error', content: 'This is error event 4.' }, - ]; - break; - default: - } - return listData || []; -}; - function customHeader() { // 返回想要的VNode或null return null; // 什么都不显示 @@ -284,6 +248,11 @@ function handleViewDateDetails(date: string) { onMounted(() => { fetchCalendarData(); }); + +// 暴露方法给父组件调用 +defineExpose({ + fetchCalendarData, +});