diff --git a/apps/web-antd/src/api/property/attendanceManagement/shiftSetting/model.d.ts b/apps/web-antd/src/api/property/attendanceManagement/shiftSetting/model.d.ts index e0d1b668..04902ade 100644 --- a/apps/web-antd/src/api/property/attendanceManagement/shiftSetting/model.d.ts +++ b/apps/web-antd/src/api/property/attendanceManagement/shiftSetting/model.d.ts @@ -5,7 +5,7 @@ export interface ShiftVO { /** * 主键id */ - id: string | number; + id: string; /** * 班次名称 diff --git a/apps/web-antd/src/api/property/customerService/feedbacks/index.ts b/apps/web-antd/src/api/property/customerService/feedbacks/index.ts new file mode 100644 index 00000000..5989ef68 --- /dev/null +++ b/apps/web-antd/src/api/property/customerService/feedbacks/index.ts @@ -0,0 +1,61 @@ +import type { FeedbacksVO, FeedbacksForm, FeedbacksQuery } 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 feedbacksList(params?: FeedbacksQuery) { + return requestClient.get>('/system/feedbacks/list', { params }); +} + +/** + * 导出意见反馈列表 + * @param params + * @returns 意见反馈列表 + */ +export function feedbacksExport(params?: FeedbacksQuery) { + return commonExport('/system/feedbacks/export', params ?? {}); +} + +/** + * 查询意见反馈详情 + * @param id id + * @returns 意见反馈详情 + */ +export function feedbacksInfo(id: ID) { + return requestClient.get(`/system/feedbacks/${id}`); +} + +/** + * 新增意见反馈 + * @param data + * @returns void + */ +export function feedbacksAdd(data: FeedbacksForm) { + return requestClient.postWithMsg('/system/feedbacks', data); +} + +/** + * 更新意见反馈 + * @param data + * @returns void + */ +export function feedbacksUpdate(data: FeedbacksForm) { + return requestClient.putWithMsg('/system/feedbacks', data); +} + +/** + * 删除意见反馈 + * @param id id + * @returns void + */ +export function feedbacksRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/system/feedbacks/${id}`); +} 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 new file mode 100644 index 00000000..bab69c5a --- /dev/null +++ b/apps/web-antd/src/api/property/customerService/feedbacks/model.d.ts @@ -0,0 +1,159 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface FeedbacksVO { + /** + * 主键 + */ + id: string | number; + + /** + * 反馈类型(0保修1保洁2会议) + */ + feedbackType: string; + + /** + * 反馈人 + */ + feedbackPersion: number; + + /** + * 反馈人电话 + */ + feedbackPersionPhone: string; + + /** + * 反馈内容 + */ + feedbackContent: string; + + /** + * 反馈位置 + */ + feedbackLocation: string; + + /** + * 反馈图片 + */ + feedbackImg: string; + + /** + * 是否转至工单 + */ + isWorkOrder: string; + + /** + * 状态(1待处理2处理中3处理完成) + */ + status: string; + + /** + * 客服电话 + */ + serviceName: string; + +} + +export interface FeedbacksForm extends BaseEntity { + /** + * 主键 + */ + id?: string | number; + + /** + * 反馈类型(0保修1保洁2会议) + */ + feedbackType?: string; + + /** + * 反馈人 + */ + feedbackPersion?: number; + + /** + * 反馈人电话 + */ + feedbackPersionPhone?: string; + + /** + * 反馈内容 + */ + feedbackContent?: string; + + /** + * 反馈位置 + */ + feedbackLocation?: string; + + /** + * 反馈图片 + */ + feedbackImg?: string; + + /** + * 是否转至工单 + */ + isWorkOrder?: string; + + /** + * 状态(1待处理2处理中3处理完成) + */ + status?: string; + + /** + * 客服电话 + */ + serviceName?: string; + +} + +export interface FeedbacksQuery extends PageQuery { + /** + * 反馈类型(0保修1保洁2会议) + */ + feedbackType?: string; + + /** + * 反馈人 + */ + feedbackPersion?: number; + + /** + * 反馈人电话 + */ + feedbackPersionPhone?: string; + + /** + * 反馈内容 + */ + feedbackContent?: string; + + /** + * 反馈位置 + */ + feedbackLocation?: string; + + /** + * 反馈图片 + */ + feedbackImg?: string; + + /** + * 是否转至工单 + */ + isWorkOrder?: string; + + /** + * 状态(1待处理2处理中3处理完成) + */ + status?: string; + + /** + * 客服电话 + */ + serviceName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/property/resident/person/model.d.ts b/apps/web-antd/src/api/property/resident/person/model.d.ts index 524bd55a..ac53f8b9 100644 --- a/apps/web-antd/src/api/property/resident/person/model.d.ts +++ b/apps/web-antd/src/api/property/resident/person/model.d.ts @@ -1,70 +1,75 @@ -import type { PageQuery, BaseEntity } from '#/api/common'; +import type { PageQuery, BaseEntity } from '#/api/common' export interface PersonVO { /** * 主键id */ - id: string | number; + id: string | number /** * 用户id */ - userId: string | number; + userId: string | number /** * 用户名称 */ - userName: string; + userName: string /** * 联系电话 */ - phone: string; + phone: string /** * 性别 */ - gender: number; + gender: number /** * 人脸图片 */ - img: string; + img: string /** * 所属单位id */ - unitId: string | number; + unitId: string | number /** * 所属单位名称 */ - unitName: string; + unitName: string /** * 入驻位置 */ - locathon: string; + locathon: string /** * 入驻时间 */ - time: string; + time: string /** * 车牌号码 */ - carNumber: string; + carNumber: string /** * 状态 */ - state: number|string; + state: number | string /** * 备注 */ - remark: string; + remark: string + + /** + * 权限组id + */ + authGroupId?: string | number } @@ -72,67 +77,72 @@ export interface PersonForm extends BaseEntity { /** * 主键id */ - id?: string | number; + id?: string | number /** * 用户id */ - userId?: string | number; + userId?: string | number /** * 用户名称 */ - userName?: string; + userName?: string /** * 联系电话 */ - phone?: string; + phone?: string /** * 性别 */ - gender?: number; + gender?: number /** * 人脸图片 */ - img?: string; + img?: string /** * 所属单位id */ - unitId?: string | number; + unitId?: string | number /** * 所属单位名称 */ - unitName?: string; + unitName?: string /** * 入驻位置 */ - locathon?: string; + locathon?: string /** * 入驻时间 */ - time?: string; + time?: string /** * 车牌号码 */ - carNumber?: string; + carNumber?: string /** * 状态 */ - state?: number; + state?: number /** * 备注 */ - remark?: string; + remark?: string + + /** + * 权限组id + */ + authGroupId?: string | number } @@ -140,128 +150,128 @@ export interface PersonQuery extends PageQuery { /** * 用户id */ - userId?: string | number; + userId?: string | number /** * 用户名称 */ - userName?: string; + userName?: string /** * 联系电话 */ - phone?: string; + phone?: string /** * 性别 */ - gender?: number; + gender?: number /** * 人脸图片 */ - img?: string; + img?: string /** * 所属单位id */ - unitId?: string | number; + unitId?: string | number /** * 所属单位名称 */ - unitName?: string; + unitName?: string /** * 入驻位置 */ - locathon?: string; + locathon?: string /** * 入驻时间 */ - time?: string; + time?: string /** * 车牌号码 */ - carNumber?: string; + carNumber?: string /** * 状态 */ - state?: number; + state?: number /** * 日期范围参数 */ - params?: any; + params?: any } -export interface Person extends BaseEntity{ +export interface Person extends BaseEntity { /** * 主键id */ - id: string | number; + id: string | number /** * 用户id */ - userId: string | number; + userId: string | number /** * 用户名称 */ - userName: string; + userName: string /** * 联系电话 */ - phone: string; + phone: string /** * 性别 */ - gender: number; + gender: number /** * 人脸图片 */ - img: string; + img: string /** * 所属单位id */ - unitId: string | number; + unitId: string | number /** * 所属单位名称 */ - unitName: string; + unitName: string /** * 入驻位置 */ - locathon: string; + locathon: string /** * 入驻时间 */ - time: string; + time: string /** * 车牌号码 */ - carNumber: string; + carNumber: string /** * 状态 */ - state: number; + state: number /** * 备注 */ - remark: string; + remark: string } diff --git a/apps/web-antd/src/api/property/resident/unit/model.d.ts b/apps/web-antd/src/api/property/resident/unit/model.d.ts index 471f6103..747ee0cc 100644 --- a/apps/web-antd/src/api/property/resident/unit/model.d.ts +++ b/apps/web-antd/src/api/property/resident/unit/model.d.ts @@ -56,6 +56,16 @@ export interface Resident_unitVO { */ remark: string; + /** + * 权限组id + */ + authGroupId?: string | number; + + /** + * 权限组名称 + */ + authGroupName?: string; + } export interface Resident_unitForm extends BaseEntity { diff --git a/apps/web-antd/src/api/sis/authGroup/index.ts b/apps/web-antd/src/api/sis/authGroup/index.ts new file mode 100644 index 00000000..fa985c1b --- /dev/null +++ b/apps/web-antd/src/api/sis/authGroup/index.ts @@ -0,0 +1,61 @@ +import type { AuthGroupVO, AuthGroupForm, AuthGroupQuery } 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 authGroupList(params?: AuthGroupQuery) { + return requestClient.get>('/sis/authGroup/list', { params }); +} + +/** + * 导出授权组列表 + * @param params + * @returns 授权组列表 + */ +export function authGroupExport(params?: AuthGroupQuery) { + return commonExport('/sis/authGroup/export', params ?? {}); +} + +/** + * 查询授权组详情 + * @param id id + * @returns 授权组详情 + */ +export function authGroupInfo(id: ID) { + return requestClient.get(`/sis/authGroup/${id}`); +} + +/** + * 新增授权组 + * @param data + * @returns void + */ +export function authGroupAdd(data: AuthGroupForm) { + return requestClient.postWithMsg('/sis/authGroup', data); +} + +/** + * 更新授权组 + * @param data + * @returns void + */ +export function authGroupUpdate(data: AuthGroupForm) { + return requestClient.putWithMsg('/sis/authGroup', data); +} + +/** + * 删除授权组 + * @param id id + * @returns void + */ +export function authGroupRemove(id: ID | IDS) { + return requestClient.deleteWithMsg(`/sis/authGroup/${id}`); +} diff --git a/apps/web-antd/src/api/sis/authGroup/model.d.ts b/apps/web-antd/src/api/sis/authGroup/model.d.ts new file mode 100644 index 00000000..50809321 --- /dev/null +++ b/apps/web-antd/src/api/sis/authGroup/model.d.ts @@ -0,0 +1,69 @@ +import type { PageQuery, BaseEntity } from '#/api/common'; + +export interface AuthGroupVO { + /** + * 主键id + */ + id: string | number; + + /** + * 权限名称 + */ + name: string; + + /** + * 面向对象(1-单位、2-个人) + */ + groupType: number; + + /** + * 是否启用(0:禁用,1启用) + */ + isEnable: boolean; + +} + +export interface AuthGroupForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 权限名称 + */ + name?: string; + + /** + * 面向对象(1-单位、2-个人) + */ + groupType?: number; + + /** + * 是否启用(0:禁用,1启用) + */ + isEnable?: boolean; + +} + +export interface AuthGroupQuery extends PageQuery { + /** + * 权限名称 + */ + name?: string; + + /** + * 面向对象(1-单位、2-个人) + */ + groupType?: number; + + /** + * 是否启用(0:禁用,1启用) + */ + isEnable?: boolean; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/apps/web-antd/src/api/sis/stream/index.ts b/apps/web-antd/src/api/sis/stream/index.ts index 0f07b406..65f08721 100644 --- a/apps/web-antd/src/api/sis/stream/index.ts +++ b/apps/web-antd/src/api/sis/stream/index.ts @@ -7,7 +7,14 @@ import { requestClient } from '#/api/request'; * @returns 人像信息列表 */ export function addStreamProxy(params?: any) { - return requestClient.post('sis/stream//realtime/add', { + return requestClient.post( + 'sis/stream/realtime/add', params, - }); + ); +} +export function addFFmpegStreamProxy(params?: any) { + return requestClient.post( + 'sis/stream/realtime/addFfmpeg', + params, + ); } diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/attendance-group-detail.vue b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/attendance-group-detail.vue new file mode 100644 index 00000000..e5753270 --- /dev/null +++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/attendance-group-detail.vue @@ -0,0 +1,218 @@ + + + + diff --git a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/change-shift-schedule.vue b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/change-shift-schedule.vue index 81d6ebe6..7aa45d56 100644 --- a/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/change-shift-schedule.vue +++ b/apps/web-antd/src/views/property/attendanceManagement/attendanceGroupSettings/change-shift-schedule.vue @@ -14,19 +14,21 @@ const [BasicModal, modalApi] = useVbenModal({ onConfirm: handleConfirm, }); -const emit = defineEmits<{ shiftInfo: [info: ShiftVO], shiftList: [list: ShiftVO[]] }>(); +const emit = defineEmits(['shiftInfo', 'shiftList', 'afterValue']); + const handleType = ref(1); -const tableLoading = ref(true); async function handleConfirm() { try { modalApi.lock(true); if (state.selectedRowKeys.length) { - let arr = shiftData.value.filter(item => state.selectedRowKeys.includes(item.id)) - if (handleType.value == 1 && arr.length) { - await emit('shiftInfo', arr[0]); - } else if (handleType.value == 2 && arr.length) { - await emit('shiftList', arr); + let arr = shiftData.value.filter((item: ShiftVO) => state.selectedRowKeys.includes(item.id)); + if (handleType.value === 1 && arr.length) { + emit('shiftInfo', arr[0]); + } else if (handleType.value === 2 && arr.length) { + emit('shiftList', arr); + } else if (handleType.value === 3 && arr.length) { + emit('afterValue', arr[0]); } } modalApi.close(); @@ -41,10 +43,11 @@ async function handleOpenChange(open: boolean) { if (!open) { return null; } - state.selectedRowKeys = [] - handleType.value = modalApi.getData()?.type; - await queryShiftData() modalApi.modalLoading(true); + state.selectedRowKeys = [] + const {type} = await modalApi.getData() as {type:number}; + handleType.value = type; + await queryShiftData() modalApi.modalLoading(false); } @@ -52,7 +55,6 @@ const shiftData = ref([]) const shiftName = ref('') async function queryShiftData() { - tableLoading.value = true let params = { name: shiftName.value, pageNum: 1, @@ -60,17 +62,16 @@ async function queryShiftData() { } const res = await shiftList(params) shiftData.value = res.rows - tableLoading.value = false } // 行勾选状态 const state = reactive({ - selectedRowKeys: [], + selectedRowKeys: [] as string[], }); // 勾选变化时的回调 const onSelectChange = (selectedRowKeys: string[]) => { - if (selectedRowKeys.length > 1 && handleType.value == 1) { + if (selectedRowKeys.length > 1 && (handleType.value == 1||handleType.value == 3)) { state.selectedRowKeys = selectedRowKeys.slice(-1); } else { state.selectedRowKeys = selectedRowKeys; @@ -110,7 +111,6 @@ const resetHandle = () => { :pagination="false" rowKey="id" :scroll="{ y: 350 }" - :loading="tableLoading" >