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 89b0748c..5dd87db2 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 @@ -89,6 +89,10 @@ export interface ArrangementForm extends BaseEntity { * 排班人员详情 */ userGroupList: any[]; + /** + * 排班id + */ + scheduleId?: string | number; } export interface ArrangementQuery extends PageQuery { @@ -140,4 +144,6 @@ export interface ArrangementQuery extends PageQuery { export interface arrangmentListQuery extends PageQuery { currentDate: string; //某天的日期 } -export interface AttendanceUserGroup {} +export interface AttendanceUserGroup extends PageQuery { + currentDate: string; //某天的日期 +} diff --git a/apps/web-antd/src/api/property/attendanceManagement/attendanceArea/index.ts b/apps/web-antd/src/api/property/attendanceManagement/attendanceArea/index.ts new file mode 100644 index 00000000..ff3291a0 --- /dev/null +++ b/apps/web-antd/src/api/property/attendanceManagement/attendanceArea/index.ts @@ -0,0 +1,61 @@ +import type { AttendanceAreaVO, AttendanceAreaForm, AttendanceAreaQuery } 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 区域区域管理列表 +*/ +export function attendanceAreaList(params?: AttendanceAreaQuery) { + return requestClient.get>('/property/attendanceArea/list', { params }); +} + +/** + * 导出区域区域管理列表 + * @param params + * @returns 区域区域管理列表 + */ +export function attendanceAreaExport(params?: AttendanceAreaQuery) { + return commonExport('/property/attendanceArea/export', params ?? {}); +} + +/** + * 查询区域区域管理详情 + * @param id id + * @returns 区域区域管理详情 + */ +export function attendanceAreaInfo(id: ID) { + return requestClient.get(`/property/attendanceArea/${id}`); +} + +/** + * 新增区域区域管理 + * @param data + * @returns void + */ +export function attendanceAreaAdd(data: AttendanceAreaForm) { + return requestClient.postWithMsg('/property/attendanceArea', data); +} + +/** + * 更新区域区域管理 + * @param data + * @returns void + */ +export function attendanceAreaUpdate(data: AttendanceAreaForm) { + return requestClient.putWithMsg('/property/attendanceArea', data); +} + +/** + * 删除区域区域管理 + * @param id id + * @returns void + */ +export function attendanceAreaRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/attendanceArea/${id}`); +} diff --git a/apps/web-antd/src/api/property/attendanceManagement/attendanceArea/model.d.ts b/apps/web-antd/src/api/property/attendanceManagement/attendanceArea/model.d.ts new file mode 100644 index 00000000..e912be71 --- /dev/null +++ b/apps/web-antd/src/api/property/attendanceManagement/attendanceArea/model.d.ts @@ -0,0 +1,69 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface AttendanceAreaVO { + /** + * 主键id + */ + id: string | number; + + /** + * 摄像机id + */ + deviceManageId: string | number; + + /** + * 区域 + */ + area: string; + + /** + * 备注 + */ + reamark: string; + +} + +export interface AttendanceAreaForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 摄像机id + */ + deviceManageId?: string | number; + + /** + * 区域 + */ + area?: string; + + /** + * 备注 + */ + reamark?: string; + +} + +export interface AttendanceAreaQuery extends PageQuery { + /** + * 摄像机id + */ + deviceManageId?: string | number; + + /** + * 区域 + */ + area?: string; + + /** + * 备注 + */ + reamark?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/questionnaire/question/index.ts b/apps/web-antd/src/api/property/questionnaire/question/index.ts new file mode 100644 index 00000000..12365003 --- /dev/null +++ b/apps/web-antd/src/api/property/questionnaire/question/index.ts @@ -0,0 +1,61 @@ +import type { QuestionVO, QuestionForm, QuestionQuery } 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 调查问卷问题列表 +*/ +export function questionList(params?: QuestionQuery) { + return requestClient.get>('/property/question/list', { params }); +} + +/** + * 导出调查问卷问题列表 + * @param params + * @returns 调查问卷问题列表 + */ +export function questionExport(params?: QuestionQuery) { + return commonExport('/property/question/export', params ?? {}); +} + +/** + * 查询调查问卷问题详情 + * @param id id + * @returns 调查问卷问题详情 + */ +export function questionInfo(id: ID) { + return requestClient.get(`/property/question/${id}`); +} + +/** + * 新增调查问卷问题 + * @param data + * @returns void + */ +export function questionAdd(data: QuestionForm) { + return requestClient.postWithMsg('/property/question', data); +} + +/** + * 更新调查问卷问题 + * @param data + * @returns void + */ +export function questionUpdate(data: QuestionForm) { + return requestClient.putWithMsg('/property/question', data); +} + +/** + * 删除调查问卷问题 + * @param id id + * @returns void + */ +export function questionRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/question/${id}`); +} diff --git a/apps/web-antd/src/api/property/questionnaire/question/model.d.ts b/apps/web-antd/src/api/property/questionnaire/question/model.d.ts new file mode 100644 index 00000000..c5367713 --- /dev/null +++ b/apps/web-antd/src/api/property/questionnaire/question/model.d.ts @@ -0,0 +1,114 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface QuestionVO { + /** + * id + */ + id: string | number; + + /** + * 调查问卷id + */ + questionnaireId: string | number; + + /** + * 标题 + */ + head: string; + + /** + * 问题类型(1单行文本2多行文本3单选题4多选题5评分题6日期选择) + */ + type: string; + + /** + * 是否必填(1不必填2必填) + */ + isRequired: string; + + /** + * 描述 + */ + depict: string; + + /** + * 排序 + */ + sort: number; + +} + +export interface QuestionForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 调查问卷id + */ + questionnaireId?: string | number; + + /** + * 标题 + */ + head?: string; + + /** + * 问题类型(1单行文本2多行文本3单选题4多选题5评分题6日期选择) + */ + type?: string; + + /** + * 是否必填(1不必填2必填) + */ + isRequired?: string; + + /** + * 描述 + */ + depict?: string; + + /** + * 排序 + */ + sort?: number; + +} + +export interface QuestionQuery extends PageQuery { + /** + * 调查问卷id + */ + questionnaireId?: string | number; + + /** + * 标题 + */ + head?: string; + + /** + * 问题类型(1单行文本2多行文本3单选题4多选题5评分题6日期选择) + */ + type?: string; + + /** + * 是否必填(1不必填2必填) + */ + isRequired?: string; + + /** + * 描述 + */ + depict?: string; + + /** + * 排序 + */ + sort?: number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/questionnaire/questionItem/index.ts b/apps/web-antd/src/api/property/questionnaire/questionItem/index.ts new file mode 100644 index 00000000..c66defca --- /dev/null +++ b/apps/web-antd/src/api/property/questionnaire/questionItem/index.ts @@ -0,0 +1,61 @@ +import type { QuestionItemVO, QuestionItemForm, QuestionItemQuery } 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 调查问卷问题选项列表 +*/ +export function questionItemList(params?: QuestionItemQuery) { + return requestClient.get>('/property/questionItem/list', { params }); +} + +/** + * 导出调查问卷问题选项列表 + * @param params + * @returns 调查问卷问题选项列表 + */ +export function questionItemExport(params?: QuestionItemQuery) { + return commonExport('/property/questionItem/export', params ?? {}); +} + +/** + * 查询调查问卷问题选项详情 + * @param id id + * @returns 调查问卷问题选项详情 + */ +export function questionItemInfo(id: ID) { + return requestClient.get(`/property/questionItem/${id}`); +} + +/** + * 新增调查问卷问题选项 + * @param data + * @returns void + */ +export function questionItemAdd(data: QuestionItemForm) { + return requestClient.postWithMsg('/property/questionItem', data); +} + +/** + * 更新调查问卷问题选项 + * @param data + * @returns void + */ +export function questionItemUpdate(data: QuestionItemForm) { + return requestClient.putWithMsg('/property/questionItem', data); +} + +/** + * 删除调查问卷问题选项 + * @param id id + * @returns void + */ +export function questionItemRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/questionItem/${id}`); +} diff --git a/apps/web-antd/src/api/property/questionnaire/questionItem/model.d.ts b/apps/web-antd/src/api/property/questionnaire/questionItem/model.d.ts new file mode 100644 index 00000000..3dea08ba --- /dev/null +++ b/apps/web-antd/src/api/property/questionnaire/questionItem/model.d.ts @@ -0,0 +1,79 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface QuestionItemVO { + /** + * id + */ + id: string | number; + + /** + * 问题id + */ + questionId: string | number; + + /** + * 选项内容 + */ + itemContent: string; + + /** + * 排序 + */ + sort: number; + + /** + * 备注 + */ + remark: string; + +} + +export interface QuestionItemForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 问题id + */ + questionId?: string | number; + + /** + * 选项内容 + */ + itemContent?: string; + + /** + * 排序 + */ + sort?: number; + + /** + * 备注 + */ + remark?: string; + +} + +export interface QuestionItemQuery extends PageQuery { + /** + * 问题id + */ + questionId?: string | number; + + /** + * 选项内容 + */ + itemContent?: string; + + /** + * 排序 + */ + sort?: number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/questionnaire/questionnaire/index.ts b/apps/web-antd/src/api/property/questionnaire/questionnaire/index.ts new file mode 100644 index 00000000..06321b2c --- /dev/null +++ b/apps/web-antd/src/api/property/questionnaire/questionnaire/index.ts @@ -0,0 +1,61 @@ +import type { QuestionnaireVO, QuestionnaireForm, QuestionnaireQuery } 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 调查问卷列表 +*/ +export function questionnaireList(params?: QuestionnaireQuery) { + return requestClient.get>('/property/questionnaire/list', { params }); +} + +/** + * 导出调查问卷列表 + * @param params + * @returns 调查问卷列表 + */ +export function questionnaireExport(params?: QuestionnaireQuery) { + return commonExport('/property/questionnaire/export', params ?? {}); +} + +/** + * 查询调查问卷详情 + * @param id id + * @returns 调查问卷详情 + */ +export function questionnaireInfo(id: ID) { + return requestClient.get(`/property/questionnaire/${id}`); +} + +/** + * 新增调查问卷 + * @param data + * @returns void + */ +export function questionnaireAdd(data: QuestionnaireForm) { + return requestClient.postWithMsg('/property/questionnaire', data); +} + +/** + * 更新调查问卷 + * @param data + * @returns void + */ +export function questionnaireUpdate(data: QuestionnaireForm) { + return requestClient.putWithMsg('/property/questionnaire', data); +} + +/** + * 删除调查问卷 + * @param id id + * @returns void + */ +export function questionnaireRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/questionnaire/${id}`); +} diff --git a/apps/web-antd/src/api/property/questionnaire/questionnaire/model.d.ts b/apps/web-antd/src/api/property/questionnaire/questionnaire/model.d.ts new file mode 100644 index 00000000..d28fca41 --- /dev/null +++ b/apps/web-antd/src/api/property/questionnaire/questionnaire/model.d.ts @@ -0,0 +1,114 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface QuestionnaireVO { + /** + * id + */ + id: string | number; + + /** + * 标题 + */ + head: string; + + /** + * 描述 + */ + depict: string; + + /** + * 是否匿名收集 + */ + isAnonyCollec: string; + + /** + * 是否多次提交 + */ + isCommit: string; + + /** + * 截止日期 + */ + deadline: string; + + /** + * 状态(1草稿2已发布3未发布) + */ + status: string; + +} + +export interface QuestionnaireForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 标题 + */ + head?: string; + + /** + * 描述 + */ + depict?: string; + + /** + * 是否匿名收集 + */ + isAnonyCollec?: string; + + /** + * 是否多次提交 + */ + isCommit?: string; + + /** + * 截止日期 + */ + deadline?: string; + + /** + * 状态(1草稿2已发布3未发布) + */ + status?: string; + +} + +export interface QuestionnaireQuery extends PageQuery { + /** + * 标题 + */ + head?: string; + + /** + * 描述 + */ + depict?: string; + + /** + * 是否匿名收集 + */ + isAnonyCollec?: string; + + /** + * 是否多次提交 + */ + isCommit?: string; + + /** + * 截止日期 + */ + deadline?: string; + + /** + * 状态(1草稿2已发布3未发布) + */ + status?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/attendanceArea-modal.vue b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/attendanceArea-modal.vue new file mode 100644 index 00000000..36ca4e4a --- /dev/null +++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/attendanceArea-modal.vue @@ -0,0 +1,101 @@ + + + + diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts new file mode 100644 index 00000000..35a9ec6f --- /dev/null +++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts @@ -0,0 +1,68 @@ +import type { FormSchemaGetter } from '#/adapter/form'; +import type { VxeGridProps } from '#/adapter/vxe-table'; + + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'area', + label: '区域', + } +]; + +// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 +// export const columns: () => VxeGridProps['columns'] = () => [ +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '区域', + field: 'area', + width: 'auto', + }, + { + title: '摄像机id', + field: 'deviceManageId', + minWidth: 300, + }, + + { + title: '备注', + field: 'reamark', + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +]; + +export const modalSchema: FormSchemaGetter = () => [ + { + label: '主键id', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '区域', + fieldName: 'area', + component: 'Input', + }, + { + label: '摄像机id', + fieldName: 'deviceManageId', + component: 'Select', + componentProps: { + }, + }, + { + label: '备注', + fieldName: 'reamark', + component: 'Input', + }, +]; diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/index.vue b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/index.vue new file mode 100644 index 00000000..52cc246e --- /dev/null +++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/index.vue @@ -0,0 +1,182 @@ + + + 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 85d4c4ec..13251334 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 @@ -207,8 +207,8 @@ const [BasicModal, modalApi] = useVbenModal({ if (!isOpen) { return null; } - await getGroupList(); modalApi.modalLoading(true); + await getGroupList(); // await markInitialized(); modalApi.modalLoading(false); }, 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 87f5d535..a91c95b9 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/calendarView.vue +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/calendarView.vue @@ -180,8 +180,8 @@ const getListData2 = ( if (found) { return found.list; } - } + } // 如果没有找到数据,返回空数组 return []; }; diff --git a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/data.ts b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/data.ts index 27466c77..ddf61fb8 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/data.ts +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/data.ts @@ -82,13 +82,13 @@ export const columns: VxeGridProps['columns'] = [ }, { title: '人员', - field: 'employeeName', + field: 'sysUser.userName', width: 120, // width: 'auto', }, { title: '单位', - field: 'deptName', + field: 'sysUser.deptName', width: 'auto', }, // { @@ -120,12 +120,13 @@ export const columns: VxeGridProps['columns'] = [ minWidth: 200, slots: { default: ({ row }) => { + if(!row.attendanceShift) return '/'; if (row.attendanceShift.startTime && row.attendanceShift.endTime) { if ( row.attendanceShift.restEndTime && row.attendanceShift.restStartTime ) { - return `${row.attendanceShift.startTime}~${row.attendanceShift.endTime} ${row.shift.restStartTime}~${row.shift.restEndTime}`; + return `${row.attendanceShift.startTime}~${row.attendanceShift.endTime} ${row.attendanceShift.restStartTime}~${row.attendanceShift.restEndTime}`; } else { return `${row.attendanceShift.startTime}~${row.attendanceShift.endTime}`; } diff --git a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/scheduleView.vue b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/scheduleView.vue index 6a22a6aa..dd0262d7 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/scheduleView.vue +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/scheduleView.vue @@ -83,12 +83,12 @@ function handleAdd() { } async function handleEdit(row: Required) { - modalApi.setData({ id: row.id }); + modalApi.setData({ id: row.scheduleId }); modalApi.open(); } async function handleDelete(row: Required) { - await arrangementRemove(row.id); + await arrangementRemove(row.scheduleId); await tableApi.query(); } @@ -129,12 +129,6 @@ async function handleDelete(row: Required) { 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 index 900d0d29..0fd19db4 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-detail.vue +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-detail.vue @@ -1,5 +1,5 @@ + + diff --git a/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-detail.vue b/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-detail.vue new file mode 100644 index 00000000..bf8fb9a2 --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-detail.vue @@ -0,0 +1,96 @@ + + + diff --git a/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-modal.vue b/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-modal.vue new file mode 100644 index 00000000..f49a0444 --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-modal.vue @@ -0,0 +1,421 @@ + + + + +