From 957827e0e44de9f678e2ca2dce09239f9dba9596 Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Tue, 19 Aug 2025 14:41:18 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=E7=83=AD=E9=97=A8=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customerService/activities/index.ts | 61 ++++++ .../customerService/activities/model.d.ts | 129 +++++++++++++ .../activities/activities-modal.vue | 101 ++++++++++ .../customerService/activities/data.ts | 128 ++++++++++++ .../customerService/activities/index.vue | 182 ++++++++++++++++++ .../visitorInvitation/data.ts | 19 +- 6 files changed, 611 insertions(+), 9 deletions(-) create mode 100644 apps/web-antd/src/api/property/customerService/activities/index.ts create mode 100644 apps/web-antd/src/api/property/customerService/activities/model.d.ts create mode 100644 apps/web-antd/src/views/property/customerService/activities/activities-modal.vue create mode 100644 apps/web-antd/src/views/property/customerService/activities/data.ts create mode 100644 apps/web-antd/src/views/property/customerService/activities/index.vue diff --git a/apps/web-antd/src/api/property/customerService/activities/index.ts b/apps/web-antd/src/api/property/customerService/activities/index.ts new file mode 100644 index 00000000..7e997c18 --- /dev/null +++ b/apps/web-antd/src/api/property/customerService/activities/index.ts @@ -0,0 +1,61 @@ +import type { ActivitiesVO, ActivitiesForm, ActivitiesQuery } 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 activitiesList(params?: ActivitiesQuery) { + return requestClient.get>('/property/activities/list', { params }); +} + +/** + * 导出热门活动列表 + * @param params + * @returns 热门活动列表 + */ +export function activitiesExport(params?: ActivitiesQuery) { + return commonExport('/property/activities/export', params ?? {}); +} + +/** + * 查询热门活动详情 + * @param id id + * @returns 热门活动详情 + */ +export function activitiesInfo(id: ID) { + return requestClient.get(`/property/activities/${id}`); +} + +/** + * 新增热门活动 + * @param data + * @returns void + */ +export function activitiesAdd(data: ActivitiesForm) { + return requestClient.postWithMsg('/property/activities', data); +} + +/** + * 更新热门活动 + * @param data + * @returns void + */ +export function activitiesUpdate(data: ActivitiesForm) { + return requestClient.putWithMsg('/property/activities', data); +} + +/** + * 删除热门活动 + * @param id id + * @returns void + */ +export function activitiesRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/activities/${id}`); +} diff --git a/apps/web-antd/src/api/property/customerService/activities/model.d.ts b/apps/web-antd/src/api/property/customerService/activities/model.d.ts new file mode 100644 index 00000000..247cb203 --- /dev/null +++ b/apps/web-antd/src/api/property/customerService/activities/model.d.ts @@ -0,0 +1,129 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface ActivitiesVO { + /** + * 主键 + */ + id: string | number; + + /** + * 标题 + */ + title: string; + + /** + * 头部照片 + */ + headImgUrl: string; + + /** + * 开始时间 + */ + startTime: string; + + /** + * 结束时间 + */ + endTime: string; + + /** + * 活动内容 + */ + activeContent: string; + + /** + * 状态(1.未开始 2.进行中 3.已结束) + */ + status: string; + + /** + * 搜索值 + */ + searchValue: string; + +} + +export interface ActivitiesForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 标题 + */ + title?: string; + + /** + * 头部照片 + */ + headImgUrl?: string; + + /** + * 开始时间 + */ + startTime?: string; + + /** + * 结束时间 + */ + endTime?: string; + + /** + * 活动内容 + */ + activeContent?: string; + + /** + * 状态(1.未开始 2.进行中 3.已结束) + */ + status?: string; + + /** + * 搜索值 + */ + searchValue?: string; + +} + +export interface ActivitiesQuery extends PageQuery { + /** + * 标题 + */ + title?: string; + + /** + * 头部照片 + */ + headImgUrl?: string; + + /** + * 开始时间 + */ + startTime?: string; + + /** + * 结束时间 + */ + endTime?: string; + + /** + * 活动内容 + */ + activeContent?: string; + + /** + * 状态(1.未开始 2.进行中 3.已结束) + */ + status?: string; + + /** + * 搜索值 + */ + searchValue?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/views/property/customerService/activities/activities-modal.vue b/apps/web-antd/src/views/property/customerService/activities/activities-modal.vue new file mode 100644 index 00000000..356e6a59 --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/activities/activities-modal.vue @@ -0,0 +1,101 @@ + + + + diff --git a/apps/web-antd/src/views/property/customerService/activities/data.ts b/apps/web-antd/src/views/property/customerService/activities/data.ts new file mode 100644 index 00000000..e1944a95 --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/activities/data.ts @@ -0,0 +1,128 @@ +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 = () => [ + { + component: 'Input', + fieldName: 'title', + label: '标题', + }, + { + component: 'Select', + componentProps: { + options: getDictOptions('pro_activity_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: 'title', + }, + { + title: '创建人', + field: 'title', + }, + { + title: '开始时间', + field: 'startTime', + }, + { + title: '结束时间', + field: 'endTime', + }, + { + title: '状态', + field: 'status', + slots: { + default: ({ row }) => { + // 可选从DictEnum中获取 DictEnum.PRO_ACTIVITY_STATUS 便于维护 + return renderDict(row.status, 'pro_activity_status'); + }, + }, + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +]; + +export const modalSchema: FormSchemaGetter = () => [ + { + label: '主键', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '标题', + fieldName: 'title', + component: 'Input', + rules: 'required', + }, + { + label: '头部照片', + fieldName: 'headImgUrl', + component: 'ImageUpload', + componentProps: { + maxCount: 1, + }, + formItemClass: 'col-span-2', + rules: 'required', + }, + { + label: '开始时间', + fieldName: 'startTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '结束时间', + fieldName: 'endTime', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + }, + rules: 'required', + }, + { + label: '活动内容', + fieldName: 'activeContent', + component: 'RichTextarea', + formItemClass: 'col-span-2', + componentProps: { + // disabled: false, // 是否只读 + // height: 400 // 高度 默认400 + }, + rules: 'required', + }, +]; diff --git a/apps/web-antd/src/views/property/customerService/activities/index.vue b/apps/web-antd/src/views/property/customerService/activities/index.vue new file mode 100644 index 00000000..31207d4a --- /dev/null +++ b/apps/web-antd/src/views/property/customerService/activities/index.vue @@ -0,0 +1,182 @@ + + + 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 b4eaa93b..1e9c4c2f 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts +++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts @@ -206,13 +206,14 @@ export const modalSchema: FormSchemaGetter = () => [ // triggerFields: ['bookingParkingSpace'], // }, // }, - // { - // label: '人脸图片', - // fieldName: 'facePictures', - // component: 'ImageUpload', - // componentProps: { - // maxCount: 1, - // }, - // formItemClass: 'col-span-2', - // }, + { + label: '人脸图片', + fieldName: 'facePictures', + component: 'ImageUpload', + componentProps: { + maxCount: 1, + }, + formItemClass: 'col-span-2', + rules: 'required', + }, ]; From c090779319266cc2e84255b466139dfac699e67a Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Tue, 19 Aug 2025 18:04:22 +0800 Subject: [PATCH 02/17] =?UTF-8?q?feat(property):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=81=AF=E6=8E=A7=E5=BC=80=E5=85=B3=E4=BF=A1=E6=81=AF=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/property/meter/lightInfo/index.ts | 61 ++++++ .../api/property/meter/lightInfo/model.d.ts | 134 +++++++++++++ .../views/property/meter/lightInfo/data.ts | 84 ++++++++ .../views/property/meter/lightInfo/index.vue | 181 ++++++++++++++++++ .../meter/lightInfo/lightInfo-drawer.vue | 140 ++++++++++++++ .../visitorInvitation-modal.vue | 1 - 6 files changed, 600 insertions(+), 1 deletion(-) create mode 100644 apps/web-antd/src/api/property/meter/lightInfo/index.ts create mode 100644 apps/web-antd/src/api/property/meter/lightInfo/model.d.ts create mode 100644 apps/web-antd/src/views/property/meter/lightInfo/data.ts create mode 100644 apps/web-antd/src/views/property/meter/lightInfo/index.vue create mode 100644 apps/web-antd/src/views/property/meter/lightInfo/lightInfo-drawer.vue diff --git a/apps/web-antd/src/api/property/meter/lightInfo/index.ts b/apps/web-antd/src/api/property/meter/lightInfo/index.ts new file mode 100644 index 00000000..2fadc30b --- /dev/null +++ b/apps/web-antd/src/api/property/meter/lightInfo/index.ts @@ -0,0 +1,61 @@ +import type { LightInfoVO, LightInfoForm, LightInfoQuery } 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 lightInfoList(params?: LightInfoQuery) { + return requestClient.get>('/property/lightInfo/list', { params }); +} + +/** + * 导出灯控开关信息列表 + * @param params + * @returns 灯控开关信息列表 + */ +export function lightInfoExport(params?: LightInfoQuery) { + return commonExport('/property/lightInfo/export', params ?? {}); +} + +/** + * 查询灯控开关信息详情 + * @param id id + * @returns 灯控开关信息详情 + */ +export function lightInfoInfo(id: ID) { + return requestClient.get(`/property/lightInfo/${id}`); +} + +/** + * 新增灯控开关信息 + * @param data + * @returns void + */ +export function lightInfoAdd(data: LightInfoForm) { + return requestClient.postWithMsg('/property/lightInfo', data); +} + +/** + * 更新灯控开关信息 + * @param data + * @returns void + */ +export function lightInfoUpdate(data: LightInfoForm) { + return requestClient.putWithMsg('/property/lightInfo', data); +} + +/** + * 删除灯控开关信息 + * @param id id + * @returns void + */ +export function lightInfoRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/property/lightInfo/${id}`); +} diff --git a/apps/web-antd/src/api/property/meter/lightInfo/model.d.ts b/apps/web-antd/src/api/property/meter/lightInfo/model.d.ts new file mode 100644 index 00000000..ef05cda9 --- /dev/null +++ b/apps/web-antd/src/api/property/meter/lightInfo/model.d.ts @@ -0,0 +1,134 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface LightInfoVO { + /** + * 主键id + */ + id: string | number; + + /** + * 位置描述 + */ + locationRemark: string; + + /** + * 开关状态(0:关,1:开) + */ + isOn: number; + + /** + * 灯控模块编码 + */ + code: number; + + /** + * 园区编码 + */ + communityId: string | number; + + /** + * 建筑名称 + */ + buildingId: string | number; + + /** + * 单元编码 + */ + unitId: string | number; + + /** + * 所属楼层ID + */ + floorId: string | number; + + /** + * 楼层 + */ + floorName: string; + +} + +export interface LightInfoForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 位置描述 + */ + locationRemark?: string; + + /** + * 开关状态(0:关,1:开) + */ + isOn?: number; + + /** + * 灯控模块编码 + */ + code?: number; + + /** + * 园区编码 + */ + communityId?: string | number; + + /** + * 建筑名称 + */ + buildingId?: string | number; + + /** + * 单元编码 + */ + unitId?: string | number; + + /** + * 所属楼层ID + */ + floorId?: string | number; + +} + +export interface LightInfoQuery extends PageQuery { + /** + * 位置描述 + */ + locationRemark?: string; + + /** + * 开关状态(0:关,1:开) + */ + isOn?: number; + + /** + * 灯控模块编码 + */ + code?: number; + + /** + * 园区编码 + */ + communityId?: string | number; + + /** + * 建筑名称 + */ + buildingId?: string | number; + + /** + * 单元编码 + */ + unitId?: string | number; + + /** + * 所属楼层ID + */ + floorId?: string | number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/views/property/meter/lightInfo/data.ts b/apps/web-antd/src/views/property/meter/lightInfo/data.ts new file mode 100644 index 00000000..ac1f4be5 --- /dev/null +++ b/apps/web-antd/src/views/property/meter/lightInfo/data.ts @@ -0,0 +1,84 @@ +import type { FormSchemaGetter } from '#/adapter/form' +import type { VxeGridProps } from '#/adapter/vxe-table' + + +export const querySchema: FormSchemaGetter = () => [ + { + component: 'Input', + fieldName: 'locationRemark', + label: '位置描述', + }, +] + +// 需要使用i18n注意这里要改成getter形式 否则切换语言不会刷新 +// export const columns: () => VxeGridProps['columns'] = () => [ +export const columns: VxeGridProps['columns'] = [ + { type: 'checkbox', width: 60 }, + // { + // title: '主键id', + // field: 'id', + // }, + { + title: '位置描述', + field: 'locationRemark', + }, + + { + title: '楼 层', + field: 'floorName', + }, + { + title: '开关状态', + field: 'isOn', + slots: { default: 'isOn' }, + }, + { + field: 'action', + fixed: 'right', + slots: { default: 'action' }, + title: '操作', + width: 180, + }, +] + +export const drawerSchema: FormSchemaGetter = () => [ + { + label: '主键id', + fieldName: 'id', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, + { + label: '楼层', + fieldName: 'floorId', + component: 'TreeSelect', + defaultValue: undefined, + rules: 'required', + }, + { + label: '位置描述', + fieldName: 'locationRemark', + component: 'Input', + rules: 'required', + }, + { + label: '开关状态', + fieldName: 'isOn', + component: 'Switch', + rules: 'required', + defaultValue: false, + componentProps: { + class: 'w-auto', + }, + }, + { + label: '灯控模块编码', + fieldName: 'code', + component: 'Input', + rules: 'required', + }, + +] diff --git a/apps/web-antd/src/views/property/meter/lightInfo/index.vue b/apps/web-antd/src/views/property/meter/lightInfo/index.vue new file mode 100644 index 00000000..27854764 --- /dev/null +++ b/apps/web-antd/src/views/property/meter/lightInfo/index.vue @@ -0,0 +1,181 @@ + + + diff --git a/apps/web-antd/src/views/property/meter/lightInfo/lightInfo-drawer.vue b/apps/web-antd/src/views/property/meter/lightInfo/lightInfo-drawer.vue new file mode 100644 index 00000000..7ca503dc --- /dev/null +++ b/apps/web-antd/src/views/property/meter/lightInfo/lightInfo-drawer.vue @@ -0,0 +1,140 @@ + + + + diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue index 830da443..8e5dadef 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue +++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue @@ -76,7 +76,6 @@ async function handleConfirm() { // 自定义深拷贝 const data = { ...cloneDeep(formValues), - facePictures: 1, visitingBeginTime: formValues.visitingTimeRange?.[0], visitingEndTime: formValues.visitingTimeRange?.[1], visitingTimeRange: undefined From 5c7080a3da4b6097b23931f94cc7d5cc263bc33c Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Wed, 20 Aug 2025 14:25:51 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E7=83=AD=E9=97=A8=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customerService/activities/activities-modal.vue | 5 +++++ .../views/property/customerService/activities/data.ts | 4 ++-- .../property/customerService/notices/notices-modal.vue | 9 +++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/web-antd/src/views/property/customerService/activities/activities-modal.vue b/apps/web-antd/src/views/property/customerService/activities/activities-modal.vue index 356e6a59..d6a09e58 100644 --- a/apps/web-antd/src/views/property/customerService/activities/activities-modal.vue +++ b/apps/web-antd/src/views/property/customerService/activities/activities-modal.vue @@ -10,6 +10,7 @@ import { activitiesAdd, activitiesInfo, activitiesUpdate } from '#/api/property/ import { defaultFormValueGetter, useBeforeCloseDiff } from '#/utils/popup'; import { modalSchema } from './data'; +import dayjs from "dayjs"; const emit = defineEmits<{ reload: [] }>(); @@ -59,6 +60,8 @@ const [BasicModal, modalApi] = useVbenModal({ if (isUpdate.value && id) { const record = await activitiesInfo(id); + dayjs(record.startTime, 'YYYY-MM-DD HH:mm:ss') + dayjs(record.endTime, 'YYYY-MM-DD HH:mm:ss') await formApi.setValues(record); } await markInitialized(); @@ -76,6 +79,8 @@ async function handleConfirm() { } // getValues获取为一个readonly的对象 需要修改必须先深拷贝一次 const data = cloneDeep(await formApi.getValues()); + data.startTime = dayjs(data.startTime).format('YYYY-MM-DD HH:mm:ss'); + data.endTime = dayjs(data.endTime).format('YYYY-MM-DD HH:mm:ss'); await (isUpdate.value ? activitiesUpdate(data) : activitiesAdd(data)); resetInitialized(); emit('reload'); diff --git a/apps/web-antd/src/views/property/customerService/activities/data.ts b/apps/web-antd/src/views/property/customerService/activities/data.ts index e1944a95..92b3aae3 100644 --- a/apps/web-antd/src/views/property/customerService/activities/data.ts +++ b/apps/web-antd/src/views/property/customerService/activities/data.ts @@ -37,7 +37,7 @@ export const columns: VxeGridProps['columns'] = [ }, { title: '创建人', - field: 'title', + field: 'createName', }, { title: '开始时间', @@ -90,7 +90,7 @@ export const modalSchema: FormSchemaGetter = () => [ maxCount: 1, }, formItemClass: 'col-span-2', - rules: 'required', + // rules: 'required', }, { label: '开始时间', diff --git a/apps/web-antd/src/views/property/customerService/notices/notices-modal.vue b/apps/web-antd/src/views/property/customerService/notices/notices-modal.vue index 2926035d..77e73d5d 100644 --- a/apps/web-antd/src/views/property/customerService/notices/notices-modal.vue +++ b/apps/web-antd/src/views/property/customerService/notices/notices-modal.vue @@ -12,6 +12,7 @@ import { defaultFormValueGetter, useBeforeCloseDiff } from '#/utils/popup'; import { modalSchema } from './data'; import {personList} from "#/api/property/resident/person"; import {renderDictValue} from "#/utils/render"; +import {userList} from "#/api/system/user"; const emit = defineEmits<{ reload: [] }>(); @@ -104,11 +105,11 @@ async function queryPersonData() { pageSize: 1000, pageNum: 1, } - const res = await personList(params); + const res = await userList(params); const options = res.rows.map((user) => ({ - label: user.userName + '-' + renderDictValue(user.gender, 'sys_user_sex') - + '-' + user.phone + '-' + user.unitName, - value: user.id, + label: user.nickName + '-' + renderDictValue(user.sex, 'sys_user_sex') + + '-' + user.phonenumber, + value: user.userId.toString(), })); formApi.updateSchema([{ componentProps: () => ({ From 4139af56733db0d86bf7ef9c14122dbb75e8be29 Mon Sep 17 00:00:00 2001 From: dev_ljl <2590379346@qq.com> Date: Wed, 20 Aug 2025 14:26:59 +0800 Subject: [PATCH 04/17] =?UTF-8?q?fix:=E9=A2=84=E8=A7=88=E9=97=AE=E5=8D=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../questionnaire/questionnaire-detail.vue | 5 ++--- .../elctricitySituation/floor-tree.vue | 15 ++++----------- .../electricEnergy/elctricitySituation/index.vue | 5 +++-- .../property/waterPower/waterSituation/index.vue | 5 +++-- 4 files changed, 12 insertions(+), 18 deletions(-) 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 index ee62df03..1b4394f2 100644 --- a/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-detail.vue +++ b/apps/web-antd/src/views/property/customerService/questionnaire/questionnaire-detail.vue @@ -1,5 +1,5 @@ @@ -87,13 +87,6 @@ onMounted(loadTree); From 28d6a77848893c17c47eaff63aff5bf86aed41d3 Mon Sep 17 00:00:00 2001 From: bichangxiong <3057647414@qq.com> Date: Wed, 20 Aug 2025 14:42:45 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/dev.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml index b0900e97..76dec171 100644 --- a/.gitea/workflows/dev.yml +++ b/.gitea/workflows/dev.yml @@ -18,7 +18,6 @@ jobs: run: npm i pnpm -g - name: node run: | - pnpm config set registry https://registry.npmmirror.com pnpm install - name: Build From 4b3ed5c2d5f2777e9f179a7d0cad0947c606dea6 Mon Sep 17 00:00:00 2001 From: bichangxiong <3057647414@qq.com> Date: Wed, 20 Aug 2025 14:53:47 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml index 76dec171..aea22546 100644 --- a/.gitea/workflows/dev.yml +++ b/.gitea/workflows/dev.yml @@ -27,7 +27,7 @@ jobs: with: host: 127.0.0.1 username: ${ { SERVER_NAME } } - password: ${{ SERVER_PWD}} + password: ${ { SERVER_PWD } } port: 11001 source: "./apps/web-antd/dist" target: "/www/wwwroot/183.230.235.66_11010/property" From 3d1681e8115517e0551bc754d049c113c7db8e66 Mon Sep 17 00:00:00 2001 From: bichangxiong <3057647414@qq.com> Date: Wed, 20 Aug 2025 15:11:14 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/dev.yml | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml index aea22546..416b395c 100644 --- a/.gitea/workflows/dev.yml +++ b/.gitea/workflows/dev.yml @@ -10,27 +10,39 @@ jobs: - name: 拉取代码仓库 uses: http://git.missmoc.top/mocheng/checkout@v4 - - name: Set up Node.js ${{ matrix.node-version }} + - name: Set up Node.js uses: http://git.missmoc.top/mocheng/setup-node@v3 with: node-version: 20.x - - name: pnpm + + - name: 安装pnpm run: npm i pnpm -g - - name: node - run: | - pnpm install - - - name: Build + + - name: 安装依赖 + run: pnpm install + continue-on-error: false # 依赖安装失败则终止工作流 + + - name: 构建项目 run: pnpm build:antd - - name: copy file via ssh password + continue-on-error: false # 构建失败则终止工作流 + + - name: 检查构建结果 + run: | + if [ ! -d "./apps/web-antd/dist" ]; then + echo "构建目录不存在,构建失败" + exit 1 + fi + if [ -z "$(ls -A ./apps/web-antd/dist)" ]; then + echo "构建目录为空,构建失败" + exit 1 + fi + + - name: 通过SSH复制文件 uses: http://git.missmoc.top/mocheng/scp-action@v0.1.7 with: host: 127.0.0.1 - username: ${ { SERVER_NAME } } - password: ${ { SERVER_PWD } } + username: ${{ secrets.SERVER_NAME }} # 使用secrets存储 + password: ${{ secrets.SERVER_PWD }} # 使用secrets存储 port: 11001 source: "./apps/web-antd/dist" target: "/www/wwwroot/183.230.235.66_11010/property" - - - From 81fc3bf2ca93f8a89d49af6b24c1cf0a7ff278f3 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Wed, 20 Aug 2025 17:23:13 +0800 Subject: [PATCH 08/17] =?UTF-8?q?feat(property):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=81=AF=E6=8E=A7=E5=BC=80=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/property/meter/lightInfo/index.ts | 18 +++ .../api/property/meter/lightInfo/model.d.ts | 4 +- .../views/property/meter/lightInfo/data.ts | 3 +- .../views/property/meter/lightInfo/index.vue | 125 +++++++----------- 4 files changed, 71 insertions(+), 79 deletions(-) diff --git a/apps/web-antd/src/api/property/meter/lightInfo/index.ts b/apps/web-antd/src/api/property/meter/lightInfo/index.ts index 2fadc30b..967d8973 100644 --- a/apps/web-antd/src/api/property/meter/lightInfo/index.ts +++ b/apps/web-antd/src/api/property/meter/lightInfo/index.ts @@ -59,3 +59,21 @@ export function lightInfoUpdate(data: LightInfoForm) { export function lightInfoRemove(id: ID | IDS) { return requestClient.deleteWithMsg(`/property/lightInfo/${id}`); } + +/** + * 更新灯控开关状态 + * @param data + * @returns void + */ +export function switchSingleLight(data: LightInfoForm) { + return requestClient.postWithMsg('/property/lightInfo/switch', data); +} + +/** + * 批量更新灯控开关状态 + * @param data + * @returns void + */ +export function switchBatchLight(data: LightInfoForm) { + return requestClient.postWithMsg('/property/lightInfo/switch', data); +} diff --git a/apps/web-antd/src/api/property/meter/lightInfo/model.d.ts b/apps/web-antd/src/api/property/meter/lightInfo/model.d.ts index ef05cda9..8afa0016 100644 --- a/apps/web-antd/src/api/property/meter/lightInfo/model.d.ts +++ b/apps/web-antd/src/api/property/meter/lightInfo/model.d.ts @@ -14,7 +14,7 @@ export interface LightInfoVO { /** * 开关状态(0:关,1:开) */ - isOn: number; + isOn: boolean; /** * 灯控模块编码 @@ -62,7 +62,7 @@ export interface LightInfoForm extends BaseEntity { /** * 开关状态(0:关,1:开) */ - isOn?: number; + isOn: boolean; /** * 灯控模块编码 diff --git a/apps/web-antd/src/views/property/meter/lightInfo/data.ts b/apps/web-antd/src/views/property/meter/lightInfo/data.ts index ac1f4be5..301c2b62 100644 --- a/apps/web-antd/src/views/property/meter/lightInfo/data.ts +++ b/apps/web-antd/src/views/property/meter/lightInfo/data.ts @@ -22,7 +22,6 @@ export const columns: VxeGridProps['columns'] = [ title: '位置描述', field: 'locationRemark', }, - { title: '楼 层', field: 'floorName', @@ -30,7 +29,7 @@ export const columns: VxeGridProps['columns'] = [ { title: '开关状态', field: 'isOn', - slots: { default: 'isOn' }, + slots: { default: 'isOn' }, }, { field: 'action', diff --git a/apps/web-antd/src/views/property/meter/lightInfo/index.vue b/apps/web-antd/src/views/property/meter/lightInfo/index.vue index 27854764..3d08c9c0 100644 --- a/apps/web-antd/src/views/property/meter/lightInfo/index.vue +++ b/apps/web-antd/src/views/property/meter/lightInfo/index.vue @@ -1,26 +1,27 @@ @@ -125,55 +117,38 @@ function handleDownloadExcel() { From 006471bb1ed038197b4007390b4f03f6856a61af Mon Sep 17 00:00:00 2001 From: mocheng <3057647414@qq.com> Date: Thu, 21 Aug 2025 12:07:34 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E5=88=B7=E6=96=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pnpm-workspace.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 218fe203..a3870ee2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -187,7 +187,7 @@ catalog: vue-tippy: ^6.7.0 vue-tsc: 2.2.10 vxe-pc-ui: ^4.5.35 - vxe-table: ^4.13.16 + vxe-table: 4.13.53 watermark-js-plus: ^1.6.0 zod: ^3.24.3 zod-defaults: ^0.1.3 From e750414f0243b10d5b8d8355b400637b47bb3f3b Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Thu, 21 Aug 2025 12:36:41 +0800 Subject: [PATCH 10/17] =?UTF-8?q?feat(property):=20=E7=89=A9=E4=B8=9A?= =?UTF-8?q?=E7=81=AF=E6=8E=A7=E4=BF=A1=E6=81=AF=E9=A1=B5=E9=9D=A2=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=B7=A6=E4=BE=A7=E7=A4=BE=E5=8C=BA=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../property/meter/lightInfo/floor-tree.vue | 81 +++++++++++++ .../views/property/meter/lightInfo/index.vue | 107 ++++++++++-------- .../src/authentication/authentication.vue | 1 + 3 files changed, 144 insertions(+), 45 deletions(-) create mode 100644 apps/web-antd/src/views/property/meter/lightInfo/floor-tree.vue diff --git a/apps/web-antd/src/views/property/meter/lightInfo/floor-tree.vue b/apps/web-antd/src/views/property/meter/lightInfo/floor-tree.vue new file mode 100644 index 00000000..a09da13c --- /dev/null +++ b/apps/web-antd/src/views/property/meter/lightInfo/floor-tree.vue @@ -0,0 +1,81 @@ + + + diff --git a/apps/web-antd/src/views/property/meter/lightInfo/index.vue b/apps/web-antd/src/views/property/meter/lightInfo/index.vue index 3d08c9c0..a31dd952 100644 --- a/apps/web-antd/src/views/property/meter/lightInfo/index.vue +++ b/apps/web-antd/src/views/property/meter/lightInfo/index.vue @@ -2,8 +2,14 @@ import { TableSwitch } from "#/components/table" import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui' +import { getVxePopupContainer } from '@vben/utils'; + +import { ref } from 'vue' +import { columns, querySchema } from './data' import { Modal, Popconfirm, Space } from 'ant-design-vue' +import FloorTree from "./floor-tree.vue" +import lightInfoDrawer from './lightInfo-drawer.vue' import { useVbenVxeGrid, @@ -13,15 +19,13 @@ import { import { lightInfoList, - lightInfoExport, lightInfoRemove, switchSingleLight, } from '#/api/property/meter/lightInfo' import type { LightInfoForm } from '#/api/property/meter/lightInfo/model' -import { commonDownloadExcel } from '#/utils/file/download' -import lightInfoDrawer from './lightInfo-drawer.vue' -import { columns, querySchema } from './data' +// 左边楼层用 +const selectFloorId = ref([]) const formOptions: VbenFormProps = { commonConfig: { @@ -32,6 +36,15 @@ const formOptions: VbenFormProps = { }, schema: querySchema(), wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4', + handleReset: async () => { + selectFloorId.value = [] + + const { formApi, reload } = tableApi + await formApi.resetForm() + const formValues = formApi.form.values + formApi.setLatestSubmissionValues(formValues) + await reload(formValues) + }, } const gridOptions: VxeGridProps = { @@ -52,6 +65,12 @@ const gridOptions: VxeGridProps = { proxyConfig: { ajax: { query: async ({ page }, formValues = {}) => { + // 部门树选择处理 + if (selectFloorId.value.length === 1) { + formValues.floorId = selectFloorId.value[0] + } else { + Reflect.deleteProperty(formValues, 'deptId') + } return await lightInfoList({ pageNum: page.currentPage, pageSize: page.pageSize, @@ -104,53 +123,51 @@ function handleMultiDelete() { }, }) } - -function handleDownloadExcel() { - commonDownloadExcel(lightInfoExport, '灯控开关信息数据', tableApi.formApi.form.values, { - fieldMappingTime: formOptions.fieldMappingTime, - }) -} diff --git a/packages/effects/layouts/src/authentication/authentication.vue b/packages/effects/layouts/src/authentication/authentication.vue index 6ca39198..6dcac873 100644 --- a/packages/effects/layouts/src/authentication/authentication.vue +++ b/packages/effects/layouts/src/authentication/authentication.vue @@ -137,6 +137,7 @@ const handleAccountLogin = async () => { type="password" placeholder="请输入您的密码" v-model="password" + @keyup.enter="handleAccountLogin" /> From 76fa9960e08cbacab346a32337cd361618074311 Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Thu, 21 Aug 2025 14:25:04 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E7=83=AD=E9=97=A8=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chargeManagement/query-user-list.vue | 4 ++-- .../visitorManagement/visitorTodo/index.vue | 20 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/query-user-list.vue b/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/query-user-list.vue index 7c6412a4..ab64aa84 100644 --- a/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/query-user-list.vue +++ b/apps/web-antd/src/views/property/greenPlantRentalManagement/chargeManagement/query-user-list.vue @@ -30,7 +30,7 @@ async function queryUser(value: string, callback: any) { const options = res.rows.map((user) => ({ label: user.userName, value: user.userName, - userId: user.userId, + userId: user.id, userName: user.userName, })); callback(options); @@ -55,7 +55,7 @@ async function getUserInfo(val:number|string) { const user = await personInfo(val) if (user) { data.value = [{ - userId: user.userId, + userId: user.id, userName: user.userName, }] emit('update:userInfo', data.value[0]); diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue index d456889a..411c737f 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue +++ b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue @@ -76,10 +76,10 @@ const [VisitorTodoModal, modalApi] = useVbenModal({ connectedComponent: visitorTodoModal, }); -async function handleEdit(row: Required) { - modalApi.setData({ id: row.id }); - modalApi.open(); -} +// async function handleEdit(row: Required) { +// modalApi.setData({ id: row.id }); +// modalApi.open(); +// } From ee9b7017f4801e6011148c67a56eb70e450f6887 Mon Sep 17 00:00:00 2001 From: FLL <2162874245@qq.com> Date: Thu, 21 Aug 2025 16:05:22 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E7=83=AD=E9=97=A8=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/property/maintenance/knowledge/data.ts | 1 + .../visitorManagement/visitorInvitation/data.ts | 16 +++++++++++++++- .../visitorInvitation/index.vue | 1 + .../visitorInvitation-modal.vue | 3 ++- .../visitorManagement/visitorTodo/index.vue | 1 + 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/apps/web-antd/src/views/property/maintenance/knowledge/data.ts b/apps/web-antd/src/views/property/maintenance/knowledge/data.ts index cbe3afcc..ec43ac71 100644 --- a/apps/web-antd/src/views/property/maintenance/knowledge/data.ts +++ b/apps/web-antd/src/views/property/maintenance/knowledge/data.ts @@ -143,5 +143,6 @@ export const modalSchema: FormSchemaGetter = () => [ label: '描述', fieldName: 'depict', component: 'Textarea', + rules: 'required', }, ]; 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 1e9c4c2f..bd41b8cc 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts +++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/data.ts @@ -2,6 +2,7 @@ import type { FormSchemaGetter } from '#/adapter/form'; import type { VxeGridProps } from '#/adapter/vxe-table'; import {getDictOptions} from "#/utils/dict"; import {renderDict} from "#/utils/render"; +import {personList} from '#/api/property/resident/person' export const querySchema: FormSchemaGetter = () => [ { @@ -148,10 +149,23 @@ export const modalSchema: FormSchemaGetter = () => [ component: 'Input', rules: 'required', }, + // { + // label: '邀约单位', + // fieldName: 'interviewedUnit', + // component: 'Input', + // rules: 'required', + // }, { label: '邀约单位', fieldName: 'interviewedUnit', - component: 'Input', + component: 'ApiSelect', + componentProps: { + api: personList, + resultField: 'rows', + labelField: 'unitName', + valueField: 'unitName', + placeholder: '请选择邀约单位', + }, rules: 'required', }, { diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/index.vue b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/index.vue index 4d769369..9aa0cae9 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/index.vue +++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/index.vue @@ -39,6 +39,7 @@ const gridOptions: VxeGridProps = { return await visitorManagementList({ pageNum: page.currentPage, pageSize: page.pageSize, + type:1, ...formValues, // visitingBeginTime: new Date(formValues.visitingTimeRange[0]).getTime(), // visitingEndTime: new Date(formValues.visitingTimeRange[1]).getTime(), diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue index 8e5dadef..626b5acf 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue +++ b/apps/web-antd/src/views/property/visitorManagement/visitorInvitation/visitorInvitation-modal.vue @@ -78,7 +78,8 @@ async function handleConfirm() { ...cloneDeep(formValues), visitingBeginTime: formValues.visitingTimeRange?.[0], visitingEndTime: formValues.visitingTimeRange?.[1], - visitingTimeRange: undefined + visitingTimeRange: undefined, + type:1 }; // getValues获取为一个readonly的对象 需要修改必须先深拷贝一次 // const data = cloneDeep(await formApi.getValues()); diff --git a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue index 411c737f..846c98f1 100644 --- a/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue +++ b/apps/web-antd/src/views/property/visitorManagement/visitorTodo/index.vue @@ -45,6 +45,7 @@ const gridOptions: VxeGridProps = { pageNum: page.currentPage, pageSize: page.pageSize, ...formValues, + type:0, visitingBeginTime: formValues.visitingTimeRange?.[0], visitingEndTime: formValues.visitingTimeRange?.[1], visitingTimeRange: undefined From a43cb1b390867bdccad60be6be5838b247ab9145 Mon Sep 17 00:00:00 2001 From: dev_ljl <2590379346@qq.com> Date: Thu, 21 Aug 2025 17:11:47 +0800 Subject: [PATCH 13/17] =?UTF-8?q?feat:=E5=B7=A5=E5=8D=95=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=9D=83=E9=87=8D=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=BC=98=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customerService/feedbacks/model.d.ts | 10 +++++ .../roomBooking/conferenceSettings/index.ts | 2 +- .../roomBooking/conferenceSettings/model.d.ts | 29 +++++++++++- .../businessManagement/workOrders/data.ts | 6 +-- .../workOrders/work-orders-detail.vue | 2 +- .../costManagement/costItemSetting/index.vue | 2 +- .../customerService/feedbacks/data.ts | 20 +++++++-- .../feedbacks/feedbacks-detail.vue | 6 ++- .../feedbacks/feedbacks-modal.vue | 44 ++++++++++++------- .../customerService/questionnaire/index.vue | 2 +- .../conferenceReservations-modal.vue | 6 +-- .../conferenceReservations/index.vue | 14 +++--- .../conferenceSettings-detail.vue | 8 ++-- .../conferenceSettings-modal.vue | 31 +++++++------ .../roomBooking/conferenceSettings/data.ts | 5 +++ 15 files changed, 130 insertions(+), 57 deletions(-) diff --git a/apps/web-antd/src/api/property/customerService/feedbacks/model.d.ts b/apps/web-antd/src/api/property/customerService/feedbacks/model.d.ts index c3d31a77..62b1abd1 100644 --- a/apps/web-antd/src/api/property/customerService/feedbacks/model.d.ts +++ b/apps/web-antd/src/api/property/customerService/feedbacks/model.d.ts @@ -10,6 +10,7 @@ export interface FeedbacksVO { * 反馈类型(0保修1保洁2会议) */ feedbackType: string; + feedbackTypeName: string; /** * 反馈人 @@ -21,6 +22,11 @@ export interface FeedbacksVO { */ feedbackPersionPhone: string; + /** + * 反馈人名称 + */ + feedbackPersionName: string; + /** * 反馈内容 */ @@ -50,6 +56,10 @@ export interface FeedbacksVO { * 客服电话 */ serviceName: string; + /** + * 工单id + */ + orderId: string; } diff --git a/apps/web-antd/src/api/property/roomBooking/conferenceSettings/index.ts b/apps/web-antd/src/api/property/roomBooking/conferenceSettings/index.ts index 8799428e..2090bf48 100644 --- a/apps/web-antd/src/api/property/roomBooking/conferenceSettings/index.ts +++ b/apps/web-antd/src/api/property/roomBooking/conferenceSettings/index.ts @@ -61,5 +61,5 @@ export function meetRemove(id: ID | IDS) { } export function notlist(params?: MeetBo) { - return requestClient.get>('/property/meet/notlist', { params }); + return requestClient.get('/property/meet/notlist', { params }); } diff --git a/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts b/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts index 3766063a..10b65829 100644 --- a/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts +++ b/apps/web-antd/src/api/property/roomBooking/conferenceSettings/model.d.ts @@ -67,6 +67,14 @@ export interface MeetVO { * 图片 */ picture: string; + /** + * 开放时段开始时间 + */ + openStartHours: string; + /** + * 开放时段结束时间 + */ + openEndHours: string; } export interface MeetForm extends BaseEntity { @@ -153,6 +161,15 @@ export interface MeetForm extends BaseEntity { */ picture: string; + /** + * 开放时段开始时间 + */ + openStartHours: string; + /** + * 开放时段结束时间 + */ + openEndHours: string; + } export interface MeetQuery extends PageQuery { @@ -240,7 +257,7 @@ export interface MeetQuery extends PageQuery { picture: string; } -export interface conferenceSettingsDetail extends BaseEntity { +export interface ConferenceSettingsDetail{ /** * 主键 */ @@ -329,6 +346,16 @@ export interface conferenceSettingsDetail extends BaseEntity { * 图片 */ picture: string; + + /** + * 开放时段开始时间 + */ + openStartHours: string; + /** + * 开放时段结束时间 + */ + openEndHours: string; + } export interface MeetBo{ diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts index 0239fe09..cfb2ebd4 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/data.ts @@ -30,7 +30,7 @@ export const querySchema: FormSchemaGetter = () => [ options: getDictOptions('pro_processing_weight'), }, fieldName: 'processingWeight', - label: '处理权重', + label: '处理优先级', }, ]; @@ -82,7 +82,7 @@ export const columns: VxeGridProps['columns'] = [ width: 100, }, { - title: '处理权重', + title: '处理优先级', field: 'processingWeight', slots: { default: ({row}) => { @@ -166,7 +166,7 @@ export const modalSchema: FormSchemaGetter = () => [ rules: 'selectRequired', }, { - label: '处理权重', + label: '处理优先级', fieldName: 'processingWeight', component: 'Select', componentProps: { diff --git a/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue b/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue index 2d2f06f0..13517c09 100644 --- a/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue +++ b/apps/web-antd/src/views/property/businessManagement/workOrders/work-orders-detail.vue @@ -57,7 +57,7 @@ async function handleOpenChange(open: boolean) { :is="renderDict(orderDetail.reportingType,'wy_gdsblx')" /> - + diff --git a/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue b/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue index 1d3c3d18..1e821fc6 100644 --- a/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue +++ b/apps/web-antd/src/views/property/costManagement/costItemSetting/index.vue @@ -140,7 +140,7 @@ const { hasAccessByCodes } = useAccess(); unCheckedValue="0" v-model:value="row.state" :api="() => costItemSettingUpdate(row)" - :disabled=" !hasAccessByCodes(['property:unit:edit'])" + :disabled=" !hasAccessByCodes(['property:costItemSetting:edit'])" @reload="() => tableApi.query()" /> diff --git a/apps/web-antd/src/views/property/customerService/feedbacks/data.ts b/apps/web-antd/src/views/property/customerService/feedbacks/data.ts index 7382d67f..498dafa9 100644 --- a/apps/web-antd/src/views/property/customerService/feedbacks/data.ts +++ b/apps/web-antd/src/views/property/customerService/feedbacks/data.ts @@ -90,7 +90,7 @@ export const modalSchema: FormSchemaGetter = () => [ { label: '反馈类型', fieldName: 'feedbackType', - component: 'Select', + component: 'TreeSelect', rules: 'selectRequired', }, { @@ -160,7 +160,15 @@ export const modalSchema: FormSchemaGetter = () => [ }, rules:'selectRequired' }, - + { + label: '工单id', + fieldName: 'orderId', + component: 'Input', + dependencies: { + show: () => false, + triggerFields: [''], + }, + }, { label: '转至工单',//转至工单 fieldName: 'isWorkOrder', @@ -170,7 +178,11 @@ export const modalSchema: FormSchemaGetter = () => [ options: getDictOptions('wy_sf'), optionType: 'button', }, - defaultValue:'0', - rules:'selectRequired' + defaultValue:'1', + rules:'selectRequired', + dependencies: { + show: (formValue) => !formValue.orderId, + triggerFields: ['orderId'], + }, }, ]; diff --git a/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-detail.vue b/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-detail.vue index c2af9a84..4a8bdf3f 100644 --- a/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-detail.vue +++ b/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-detail.vue @@ -37,10 +37,12 @@ async function handleOpenChange(open: boolean) { - {{ feedbacksDetail.feedbackType }} + {{ feedbacksDetail.feedbackTypeName }} - {{ feedbacksDetail.feedbackPersion+'-'+feedbacksDetail.feedbackPersionPhone }} + + {{ feedbacksDetail.feedbackPersionName||''+'-'+feedbacksDetail.feedbackPersionPhone }} + {{ feedbacksDetail.feedbackContent }} diff --git a/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-modal.vue b/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-modal.vue index 58a2ceef..431632c8 100644 --- a/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-modal.vue +++ b/apps/web-antd/src/views/property/customerService/feedbacks/feedbacks-modal.vue @@ -15,7 +15,9 @@ import {defaultFormValueGetter, useBeforeCloseDiff} from '#/utils/popup'; import {modalSchema} from './data'; import type {FeedbacksVO} from "#/api/property/customerService/feedbacks/model"; -import {workOrdersTypeList} from "#/api/property/businessManagement/workOrdersType"; +import { + workOrdersTypeTree +} from "#/api/property/businessManagement/workOrdersType"; const emit = defineEmits<{ reload: [] }>(); @@ -101,28 +103,38 @@ async function handleClosed() { } async function initWorkOrderTypeOption() { - let params = { - pageSize: 1000, - pageNum: 1 - } - const res = await workOrdersTypeList(params) - formApi.updateSchema([{ - componentProps: () => ({ - options: res.rows, - showSearch: true, - optionFilterProp: 'orderTypeName', - fieldNames: {label: 'orderTypeName', value: 'id'}, - }), - fieldName: 'feedbackType', - }]) + const options = await workOrdersTypeTree() + formApi.updateSchema([ + { + componentProps: () => ({ + class: 'w-full', + fieldNames: { + key: 'id', + label: 'orderTypeName', + value: 'id', + children: 'children', + }, + placeholder: '请选择反馈类型', + showSearch: true, + treeData: options, + treeDefaultExpandAll: true, + treeLine: { showLeafIcon: false }, + treeNodeFilterProp: 'orderTypeName', + treeNodeLabelProp: 'orderTypeName', + }), + fieldName: 'feedbackType', + }, + ]); } +