From 13f79986f8920374f1b75275c715ea3f1c0bce28 Mon Sep 17 00:00:00 2001
From: fyy <2717885210@qq.com>
Date: Tue, 12 Aug 2025 17:30:57 +0800
Subject: [PATCH 1/5] =?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
---
.../workforceManagement/arrangement-modal.vue | 2 +-
.../workforceManagement/data.ts | 3 ++-
.../workforceManagement/unit-person-modal.vue | 1 -
.../workforceManagement/workforce-detail.vue | 26 ++++++++++++-------
4 files changed, 19 insertions(+), 13 deletions(-)
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/data.ts b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/data.ts
index 27466c77..42f47b65 100644
--- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/data.ts
+++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/data.ts
@@ -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/unit-person-modal.vue b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/unit-person-modal.vue
index 425ef105..d8d7ae92 100644
--- a/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/unit-person-modal.vue
+++ b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/unit-person-modal.vue
@@ -192,7 +192,6 @@ async function handleConfirm() {
});
}
}
- console.log(tableData);
resetInitialized();
emit('reload', tableData);
tableData = [];
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..496b3bc4 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/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 @@
+
+
+
+
+
+
+
+
+ {{ $t('pages.common.export') }}
+
+
+ {{ $t('pages.common.delete') }}
+
+
+ {{ $t('pages.common.add') }}
+
+
+
+
+
+
+ {{ $t('pages.common.edit') }}
+
+
+
+ {{ $t('pages.common.delete') }}
+
+
+
+
+
+
+
+
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) {
-
- {{ $t('pages.common.edit') }}
-
item.users.map((user) => ({
deptId: item.dept.unitId,
From 578aa610824b4e2309cc7fbaa1a79f05e76dbcb4 Mon Sep 17 00:00:00 2001
From: fyy <2717885210@qq.com>
Date: Thu, 14 Aug 2025 10:00:53 +0800
Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=E6=8E=92=E7=8F=AD=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../property/attendanceManagement/arrangement/model.d.ts | 6 ++++--
.../workforceManagement/workforce-day-detail.vue | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
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 91efa8ce..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
@@ -92,7 +92,7 @@ export interface ArrangementForm extends BaseEntity {
/**
* 排班id
*/
- scheduleId: string | number;
+ scheduleId?: string | number;
}
export interface ArrangementQuery extends PageQuery {
@@ -144,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/views/property/attendanceManagement/workforceManagement/workforce-day-detail.vue b/apps/web-antd/src/views/property/attendanceManagement/workforceManagement/workforce-day-detail.vue
index 78921065..23fb8b50 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.employeeName }}
+ {{ item.sysUser.userName }}
、
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 4/5] =?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 @@
+
+
+
+
+
+
+
+
+ {{ $t('pages.common.export') }}
+
+
+ {{ $t('pages.common.delete') }}
+
+
+ {{ $t('pages.common.add') }}
+
+
+
+
+
+
+
+ {{ '审核' }}
+
+
+
+ {{ $t('pages.common.info') }}
+
+
+ {{ $t('pages.common.edit') }}
+
+
+
+ {{ $t('pages.common.delete') }}
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+ {{ contingenPlanIDetail.contingenPlanName }}
+
+
+ {{ contingenPlanIDetail.createTime }}
+
+
+
+
+
+ {{ contingenPlanIDetail.updateTime }}
+
+
+
+
+
+ {{ contingenPlanIDetail.compleTimes }}
+
+
+ {{ contingenPlanIDetail.initiatName }}
+
+
+ {{ contingenPlanIDetail.dutyPersionName}}
+
+
+
+
+
+
+
+
+
+
+ 处理记录
+
+
+
+ 类型:
+
+ 时间:{{item.createTime}}
+ 处理人:{{item.handlerName}}
+
+
+
+
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 5/5] =?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;
+}