From 1db3c351e5e90bb3f1c65543f376288a02f08e2d Mon Sep 17 00:00:00 2001 From: fyy <2717885210@qq.com> Date: Wed, 13 Aug 2025 17:02:49 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=92=E7=8F=AD?= =?UTF-8?q?=E8=AF=A6=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../arrangement/model.d.ts | 4 + .../attendanceArea/index.ts | 61 ++++++ .../attendanceArea/model.d.ts | 69 +++++++ .../attendanceArea/attendanceArea-modal.vue | 101 ++++++++++ .../attendanceArea/data.ts | 68 +++++++ .../attendanceArea/index.vue | 182 ++++++++++++++++++ .../workforceManagement/calendarView.vue | 2 +- .../workforceManagement/data.ts | 4 +- .../workforceManagement/scheduleView.vue | 10 +- .../workforceManagement/workforce-detail.vue | 1 - 10 files changed, 490 insertions(+), 12 deletions(-) create mode 100644 apps/web-antd/src/api/property/attendanceManagement/attendanceArea/index.ts create mode 100644 apps/web-antd/src/api/property/attendanceManagement/attendanceArea/model.d.ts create mode 100644 apps/web-antd/src/views/property/attendanceManagement/attendanceArea/attendanceArea-modal.vue create mode 100644 apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts create mode 100644 apps/web-antd/src/views/property/attendanceManagement/attendanceArea/index.vue 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..91efa8ce 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 { 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/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/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 42f47b65..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', }, // { 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) { From 2cdbc64250818f3515d9416fc08395dffa59211d Mon Sep 17 00:00:00 2001 From: dev_ljl <2590379346@qq.com> Date: Thu, 14 Aug 2025 14:58:42 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat:=E8=B0=83=E6=9F=A5=E9=97=AE=E5=8D=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customerService/questionnaire/data.ts | 158 +++++++ .../customerService/questionnaire/index.vue | 231 ++++++++++ .../questionnaire/questionnaire-detail.vue | 96 ++++ .../questionnaire/questionnaire-modal.vue | 421 ++++++++++++++++++ 4 files changed, 906 insertions(+) create mode 100644 apps/web-antd/src/views/property/customerService/questionnaire/data.ts create mode 100644 apps/web-antd/src/views/property/customerService/questionnaire/index.vue create mode 100644 apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-detail.vue create mode 100644 apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-modal.vue diff --git a/apps/web-antd/src/views/property/customerService/questionnaire/data.ts b/apps/web-antd/src/views/property/customerService/questionnaire/data.ts new file mode 100644 index 00000000..933e55ec --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/questionnaire/data.ts @@ -0,0 +1,158 @@ +import type { FormSchemaGetter } from '#/adapter/form'; +import type { VxeGridProps } from '#/adapter/vxe-table'; +import { getDictOptions } from '#/utils/dict'; +import { renderDict } from '#/utils/render'; +import {h} from "vue"; +import {Rate} from "ant-design-vue"; + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Select', + componentProps: { + options: getDictOptions('type_contingency_plan'), + }, + fieldName: 'contingenPlanType', + label: '预案类型', + }, + { + component: 'ApiSelect', + fieldName: 'dutyPersion', + label: '责任人', + }, + { + component: 'Select', + componentProps: { + options: getDictOptions('pro_exercise_status'), + }, + fieldName: 'status', + label: '演练状态', + }, +]; + +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + { + title: '序号', + field: 'id', + slots: { + default: ({rowIndex}) => { + return (rowIndex + 1).toString(); + } + } + }, + { + title: '预案名称', + field: 'contingenPlanName', + }, + { + title: '预案类型', + field: 'contingenPlanType', + slots: { + default: ({ row }) => { + return renderDict(row.contingenPlanType, 'type_contingency_plan'); + }, + }, + }, + { + title: '风险等级', + field: 'grade', + slots: { + default: ({ row }) => { + return h(Rate, { + value: row.grade || 0, + disabled: true, + }); + }, + }, + minWidth: '150' + }, + { + title: '发起人', + field: 'initiatName', + }, + { + title: '演练状态', + field: 'status', + slots: { + default: ({ row }) => { + return renderDict(row.status, 'pro_exercise_status'); + }, + }, + }, + { + title: '责任人', + field: 'dutyPersionName', + }, + { + title: '完成时间', + field: 'compleTimes', + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 240, + }, +]; + +export const modalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '预案名称', + fieldName: 'contingenPlanName', + component: 'Input', + rules: 'required', + }, + { + label: '预案类型', + fieldName: 'contingenPlanType', + component: 'Select', + componentProps: { + options: getDictOptions('type_contingency_plan'), + }, + rules: 'selectRequired', + }, + { + label: '发起人', + fieldName: 'initiat', + component: 'ApiSelect', + rules: 'selectRequired', + }, + { + label: '责任人', + fieldName: 'dutyPersion', + component: 'ApiSelect', + rules: 'selectRequired', + }, + { + label: '预案内容', + fieldName: 'contingenPlanContent', + component: 'RichTextarea', + componentProps: { + // disabled: false, // 是否只读 + // height: 400 // 高度 默认400 + }, + formItemClass: 'col-span-2' + }, + { + label: '风险等级', + fieldName: 'grade', + component: 'Rate', + componentProps: { + allowHalf: false, + count: 5, + tooltips: ['1星', '2星', '3星', '4星', '5星'], + defaultValue: 0 + }, + rules: 'required', + }, +]; diff --git a/apps/web-antd/src/views/property/customerService/questionnaire/index.vue b/apps/web-antd/src/views/property/customerService/questionnaire/index.vue new file mode 100644 index 00000000..149a5bd4 --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/questionnaire/index.vue @@ -0,0 +1,231 @@ + + + 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 @@ + + + + + From f24ec168bf376b5df9f3aff25df217c5f5f9af33 Mon Sep 17 00:00:00 2001 From: dev_ljl <2590379346@qq.com> Date: Thu, 14 Aug 2025 15:12:40 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat:=E8=B0=83=E6=9F=A5=E9=97=AE=E5=8D=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../property/questionnaire/question/index.ts | 61 ++++++++++ .../questionnaire/question/model.d.ts | 114 ++++++++++++++++++ .../questionnaire/questionItem/index.ts | 61 ++++++++++ .../questionnaire/questionItem/model.d.ts | 79 ++++++++++++ .../questionnaire/questionnaire/index.ts | 61 ++++++++++ .../questionnaire/questionnaire/model.d.ts | 114 ++++++++++++++++++ 6 files changed, 490 insertions(+) create mode 100644 apps/web-antd/src/api/property/questionnaire/question/index.ts create mode 100644 apps/web-antd/src/api/property/questionnaire/question/model.d.ts create mode 100644 apps/web-antd/src/api/property/questionnaire/questionItem/index.ts create mode 100644 apps/web-antd/src/api/property/questionnaire/questionItem/model.d.ts create mode 100644 apps/web-antd/src/api/property/questionnaire/questionnaire/index.ts create mode 100644 apps/web-antd/src/api/property/questionnaire/questionnaire/model.d.ts 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; +} From fcd4051e906646e612a2ce833e1fc20cafa892ab Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Thu, 14 Aug 2025 15:14:32 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visitorManagement/visitorInvitation/data.ts | 14 ++++++++++++-- .../visitorInvitation/visitorInvitation-detail.vue | 6 ++++-- .../visitorTodo/visitorTodo-detail.vue | 6 ++++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts index ccbcfa04..b4eaa93b 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts +++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts @@ -1,5 +1,7 @@ import type { FormSchemaGetter } from '#/adapter/form'; import type { VxeGridProps } from '#/adapter/vxe-table'; +import {getDictOptions} from "#/utils/dict"; +import {renderDict} from "#/utils/render"; export const querySchema: FormSchemaGetter = () => [ { @@ -64,6 +66,11 @@ export const columns: VxeGridProps['columns'] = [ { title: '事由', field: 'visitingReason', + slots: { + default: ({ row }) => { + return renderDict(row.visitingReason, 'reason_for_visit'); + }, + }, }, { title: '拜访时间', @@ -156,8 +163,11 @@ export const modalSchema: FormSchemaGetter = () => [ { label: '事由', fieldName: 'visitingReason', - component: 'Input', - rules: 'required', + component: 'Select', + componentProps: { + options: getDictOptions('reason_for_visit'), + }, + rules: 'selectRequired', }, { label: '拜访时间', diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-detail.vue b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-detail.vue index 53bb98d1..1cfb8c9c 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-detail.vue +++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-detail.vue @@ -53,8 +53,10 @@ async function handleOpenChange(open: boolean) { {{ visitorInvitationDetail.interviewedUnit }} - - {{ visitorInvitationDetail.visitingReason }} + + {{ visitorInvitationDetail.visitingBeginTime+' - '+visitorInvitationDetail.visitingBeginTime }} diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-detail.vue b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-detail.vue index 16c92028..4a250854 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-detail.vue +++ b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/visitorTodo-detail.vue @@ -59,8 +59,10 @@ async function handleOpenChange(open: boolean) { {{ visitorTodoDetail.interviewedUnit }} - - {{ visitorTodoDetail.visitingReason }} + + {{ visitorTodoDetail.visitingBeginTime+' - '+visitorTodoDetail.visitingBeginTime }} From 78ff0f0c3d0a1d96488d1298fd7e00025b5f5c83 Mon Sep 17 00:00:00 2001 From: fyy <2717885210@qq.com> Date: Thu, 14 Aug 2025 17:19:58 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20=E9=97=AE=E5=8D=B7=E5=88=86?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/sis/deviceManage/model.d.ts | 4 +- .../attendanceArea/data.ts | 21 +- .../workforceManagement/data.ts | 6 +- .../workforce-day-detail.vue | 2 +- .../workforceManagement/workforce-detail.vue | 10 +- .../questionnaireAnalysis/data.ts | 0 .../questionnaireAnalysis/index.vue | 275 ++++++++++++++++++ .../questionnaire-table-modal.vue | 4 + 8 files changed, 306 insertions(+), 16 deletions(-) create mode 100644 apps/web-antd/src/views/property/customerService/questionnaireAnalysis/data.ts create mode 100644 apps/web-antd/src/views/property/customerService/questionnaireAnalysis/index.vue create mode 100644 apps/web-antd/src/views/property/customerService/questionnaireAnalysis/questionnaire-table-modal.vue diff --git a/apps/web-antd/src/api/sis/deviceManage/model.d.ts b/apps/web-antd/src/api/sis/deviceManage/model.d.ts index c961d7f0..3e27e50f 100644 --- a/apps/web-antd/src/api/sis/deviceManage/model.d.ts +++ b/apps/web-antd/src/api/sis/deviceManage/model.d.ts @@ -178,9 +178,9 @@ export interface DeviceManageQuery extends PageQuery { */ deviceMac?: string; - lon: number; + lon?: number; - lat: number; + lat?: number; /** * 设备在线状态 0:离线 1:在线 2:未知 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 35a9ec6f..9f0abf52 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts +++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceArea/data.ts @@ -1,13 +1,12 @@ import type { FormSchemaGetter } from '#/adapter/form'; import type { VxeGridProps } from '#/adapter/vxe-table'; - - +import { deviceManageList } from '#/api/sis/deviceManage'; export const querySchema: FormSchemaGetter = () => [ { component: 'Input', fieldName: 'area', label: '区域', - } + }, ]; // 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 @@ -54,10 +53,22 @@ export const modalSchema: FormSchemaGetter = () => [ component: 'Input', }, { - label: '摄像机id', + label: '摄像机', fieldName: 'deviceManageId', - component: 'Select', + component: 'ApiSelect', componentProps: { + api: async () => { + const res = await deviceManageList({ + pageNum: 1, + pageSize: 10000, + deviceType: 1, + }); + return res; + }, + resultField: 'rows', + labelField: 'deviceName', + valueField: 'id', + mode: 'multiple', }, }, { 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 ddf61fb8..331d649a 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: 'sysUser.userName', + field: 'remoteUserVo.userName', width: 120, // width: 'auto', }, { title: '单位', - field: 'sysUser.deptName', + field: 'deptName', width: 'auto', }, // { @@ -120,7 +120,7 @@ export const columns: VxeGridProps['columns'] = [ minWidth: 200, slots: { default: ({ row }) => { - if(!row.attendanceShift) return '/'; + if (!row.attendanceShift) return '/'; if (row.attendanceShift.startTime && row.attendanceShift.endTime) { if ( row.attendanceShift.restEndTime && diff --git a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-day-detail.vue b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-day-detail.vue index 23fb8b50..696610df 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-day-detail.vue +++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-day-detail.vue @@ -87,7 +87,7 @@ async function handleClosed() { :key="item.id" class="wrap-cell" > - {{ item.sysUser.userName }} + {{ item.remoteUserVo.userName }} 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 0fd19db4..b5e64776 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/questionnaireAnalysis/questionnaire-table-modal.vue b/apps/web-antd/src/views/property/customerService/questionnaireAnalysis/questionnaire-table-modal.vue new file mode 100644 index 00000000..9d13f383 --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/questionnaireAnalysis/questionnaire-table-modal.vue @@ -0,0 +1,4 @@ + +