From 1e4c74230f6a6b642e5ed6bbb891759369836f54 Mon Sep 17 00:00:00 2001 From: fyy <2717885210@qq.com> Date: Thu, 7 Aug 2025 17:44:45 +0800 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=E6=8E=92=E7=8F=AD=E6=97=A5?= =?UTF-8?q?=E5=8E=86=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../attendanceManagement/arrangement/index.ts | 34 +- .../arrangement/model.d.ts | 20 +- .../workforceManagement/arrangement-modal.vue | 78 +--- .../workforceManagement/calendarView.vue | 161 ++++---- .../workforceManagement/data.ts | 66 ++++ .../workforce-day-detail.vue | 107 ++++++ .../workforceManagement/workforce-detail.vue | 346 ++++++++++++++++++ 7 files changed, 647 insertions(+), 165 deletions(-) create mode 100644 apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-day-detail.vue create mode 100644 apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-detail.vue diff --git a/apps/web-antd/src/api/property/attendanceManagement/arrangement/index.ts b/apps/web-antd/src/api/property/attendanceManagement/arrangement/index.ts index 0ffab03b..fdd93873 100644 --- a/apps/web-antd/src/api/property/attendanceManagement/arrangement/index.ts +++ b/apps/web-antd/src/api/property/attendanceManagement/arrangement/index.ts @@ -1,18 +1,25 @@ -import type { ArrangementVO, ArrangementForm, ArrangementQuery } from './model'; +import type { + ArrangementVO, + ArrangementForm, + ArrangementQuery, + arrangmentListQuery, +} from './model'; import type { ID, IDS } from '#/api/common'; import type { PageResult } from '#/api/common'; -import { commonExport } from '#/api/helper'; import { requestClient } from '#/api/request'; /** -* 分页查询排班列表 -* @param params -* @returns 排班列表 -*/ + * 分页查询排班列表 + * @param params + * @returns 排班列表 + */ export function arrangementList(params?: ArrangementQuery) { - return requestClient.get>('/property/arrangement/list', { params }); + return requestClient.get>( + '/property/arrangement/list', + { params }, + ); } /** * 根据月份查询排班列表 @@ -58,3 +65,16 @@ export function arrangementUpdate(data: ArrangementForm) { export function arrangementRemove(id: ID | IDS) { return requestClient.deleteWithMsg(`/property/arrangement/${id}`); } + +/** + * 查询某天排班详情列表 + * @param params + * @returns 排班列表 + */ + +export function arrangmentList(params?: arrangmentListQuery) { + return requestClient.get>( + '/property/arrangement/list', + { params }, + ); +} 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 83f93190..e0ecbb4a 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 @@ -9,37 +9,40 @@ export interface ArrangementVO { /** * 排班名称 */ - scheduleName: string; + scheduleName?: string; /** * 考勤组ID */ - groupId: string | number; + groupId?: string | number; /** * 排班类型:1-固定班制,2-排班制 */ - scheduleType: number; + scheduleType?: number; /** * 日期类型:1-单个日期,2-长期有效,3-期间有效 */ - dateType: number; + dateType?: number; /** * 开始日期 */ - startDate: string; + startDate?: string; /** * 结束日期(仅date_type=3时有效) */ - endDate: string; + endDate?: string; /** * 状态:0-未生效,1-已生效 */ - status: number; + status?: number; + userGroupList?:any[]; + attendanceGroup?:any; + dateType?:number } export interface ArrangementForm extends BaseEntity { @@ -134,3 +137,6 @@ export interface ArrangementQuery extends PageQuery { */ month?: string; } +export interface arrangmentListQuery extends PageQuery { + currentDate:string//某天的日期 +} 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 d4e5ccd3..1a941699 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 @@ -1,18 +1,9 @@ + + + + + diff --git a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-detail.vue b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-detail.vue new file mode 100644 index 00000000..900d0d29 --- /dev/null +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-detail.vue @@ -0,0 +1,346 @@ + + + + From 73232037ccd3e6e193f3c3770d124d66327bab33 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Thu, 7 Aug 2025 23:14:13 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=8F=AF=E8=A7=86=E5=8C=96=E9=97=A8?= =?UTF-8?q?=E7=A6=81=E9=A1=B5=E9=9D=A2=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/sis/acAdmin/dp-tree.vue | 19 ++- apps/web-antd/src/views/sis/acAdmin/index.vue | 111 +++++++++++++++--- 2 files changed, 102 insertions(+), 28 deletions(-) diff --git a/apps/web-antd/src/views/sis/acAdmin/dp-tree.vue b/apps/web-antd/src/views/sis/acAdmin/dp-tree.vue index 790828d6..5ac53c85 100644 --- a/apps/web-antd/src/views/sis/acAdmin/dp-tree.vue +++ b/apps/web-antd/src/views/sis/acAdmin/dp-tree.vue @@ -9,14 +9,7 @@ defineOptions({ inheritAttrs: false }); withDefaults(defineProps<{ showSearch?: boolean }>(), { showSearch: true }); -const emit = defineEmits<{ - checked: []; - /** - * 点击节点的事件 - */ - reload: []; - select: []; -}>(); +const emit = defineEmits(['checked', 'reload', 'select']); const searchValue = defineModel('searchValue', { type: String, @@ -39,6 +32,7 @@ async function loadChannelTree() { function handleNode(nodes: any[], level: number) { nodes.forEach((node) => { + node.key = node.id; if (node.level < level) { node.disabled = true; } @@ -107,7 +101,13 @@ function checkNodeData() { const checkData: any = {}; +/** + * 树选中时间 + * @param _keys 当前选中的节点key + * @param nodes 当前选中的节点 + */ function onTreeCheck(_keys: any, nodes: any) { + // nodes 为当前当前选中的节点 const { checked, checkedNodes } = nodes; // 找到需要播放的视频节点 checkedNodes.forEach((node: any) => { @@ -119,8 +119,7 @@ function onTreeCheck(_keys: any, nodes: any) { delete checkData[id]; } }); - const data = toRaw(checkedNodes); - emit('checked', checked, data); + emit('checked', _keys, nodes); } onMounted(loadChannelTree); diff --git a/apps/web-antd/src/views/sis/acAdmin/index.vue b/apps/web-antd/src/views/sis/acAdmin/index.vue index 2274bee2..cbf4ed1d 100644 --- a/apps/web-antd/src/views/sis/acAdmin/index.vue +++ b/apps/web-antd/src/views/sis/acAdmin/index.vue @@ -1,7 +1,7 @@ diff --git a/apps/web-antd/src/views/property/inspectionManagement/inspectionPoint/point-detail.vue b/apps/web-antd/src/views/property/inspectionManagement/inspectionPoint/point-detail.vue new file mode 100644 index 00000000..7b9fe199 --- /dev/null +++ b/apps/web-antd/src/views/property/inspectionManagement/inspectionPoint/point-detail.vue @@ -0,0 +1,64 @@ + + +