From 40f13be7044b45b590359d1073adb8d6bb964c68 Mon Sep 17 00:00:00 2001 From: Zy <1448159279@qq.com> Date: Tue, 14 Apr 2026 17:34:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=91=8A=EF=BC=8C=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=EF=BC=8C=E6=8A=95=E8=AF=89=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/Decoration/index.ts | 63 +++ src/api/system/Decoration/type.ts | 150 ++++++ src/api/system/HandleLog/index.ts | 63 +++ src/api/system/HandleLog/type.ts | 95 ++++ src/api/system/NoticePc/index.ts | 63 +++ src/api/system/NoticePc/type.ts | 125 +++++ src/assets/icons/svg/viliageIcon.svg | 4 + src/components/DictTag/index.vue | 6 +- src/components/Echarts/index.vue | 118 +++++ src/components/Editor/index.vue | 8 + src/components/Pageheader/index.vue | 2 +- src/router/index.ts | 2 +- src/views/index.vue | 165 ------- src/views/login.vue | 7 +- src/views/system/Activity/addActivity.vue | 50 +- src/views/system/Activity/index.vue | 3 +- src/views/system/Complaint/index.vue | 3 +- src/views/system/ComplaintType/index.vue | 3 +- src/views/system/Decoration/addDecoration.vue | 168 +++++++ src/views/system/Decoration/index.vue | 187 +++++++ src/views/system/HandleLog/addHandleLog.vue | 174 +++++++ src/views/system/HandleLog/index.vue | 177 +++++++ src/views/system/MonthCard/index.vue | 2 +- src/views/system/NoticePc/addNoticePc.vue | 173 +++++++ src/views/system/NoticePc/index.vue | 191 +++++++ src/views/system/ParkingCost/index.vue | 2 +- src/views/system/Repair/index.vue | 15 +- src/views/system/Repair/repairMain.vue | 2 +- src/views/system/Repair/repairlist.vue | 2 +- src/views/system/Visitor/index.vue | 5 +- src/views/system/carArea/index.vue | 2 +- src/views/system/cars/index.vue | 2 +- src/views/system/config/index.vue | 2 +- src/views/system/dict/index.vue | 11 +- src/views/system/houseRental/index.vue | 2 +- src/views/system/notice/index.vue | 2 +- src/views/system/parking/index.vue | 2 +- src/views/system/storeroom/index.vue | 2 +- src/views/workbench/components/HouseUser.vue | 144 ++++++ .../workbench/components/repairEcharts.vue | 55 +++ src/views/workbench/index.vue | 467 ++++++++++++++++++ 41 files changed, 2499 insertions(+), 220 deletions(-) create mode 100644 src/api/system/Decoration/index.ts create mode 100644 src/api/system/Decoration/type.ts create mode 100644 src/api/system/HandleLog/index.ts create mode 100644 src/api/system/HandleLog/type.ts create mode 100644 src/api/system/NoticePc/index.ts create mode 100644 src/api/system/NoticePc/type.ts create mode 100644 src/assets/icons/svg/viliageIcon.svg create mode 100644 src/components/Echarts/index.vue delete mode 100644 src/views/index.vue create mode 100644 src/views/system/Decoration/addDecoration.vue create mode 100644 src/views/system/Decoration/index.vue create mode 100644 src/views/system/HandleLog/addHandleLog.vue create mode 100644 src/views/system/HandleLog/index.vue create mode 100644 src/views/system/NoticePc/addNoticePc.vue create mode 100644 src/views/system/NoticePc/index.vue create mode 100644 src/views/workbench/components/HouseUser.vue create mode 100644 src/views/workbench/components/repairEcharts.vue create mode 100644 src/views/workbench/index.vue diff --git a/src/api/system/Decoration/index.ts b/src/api/system/Decoration/index.ts new file mode 100644 index 0000000..49126aa --- /dev/null +++ b/src/api/system/Decoration/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DecorationVO, DecorationForm, DecorationQuery } from '@/api/system/Decoration/type'; + +/** + * 查询装修管理列表 + * @param query + * @returns {*} + */ + +export const listDecoration = (query?: DecorationQuery): AxiosPromise => { + return request({ + url: '/decoration/list', + method: 'get', + params: query + }); +}; + +/** + * 查询装修管理详细 + * @param id + */ +export const getDecoration = (id: string | number): AxiosPromise => { + return request({ + url: '/decoration/' + id, + method: 'get' + }); +}; + +/** + * 新增装修管理 + * @param data + */ +export const addDecoration = (data: DecorationForm) => { + return request({ + url: '/decoration', + method: 'post', + data: data + }); +}; + +/** + * 修改装修管理 + * @param data + */ +export const updateDecoration = (data: DecorationForm) => { + return request({ + url: '/decoration', + method: 'put', + data: data + }); +}; + +/** + * 删除装修管理 + * @param id + */ +export const delDecoration = (id: string | number | Array) => { + return request({ + url: '/decoration/' + id, + method: 'delete' + }); +}; diff --git a/src/api/system/Decoration/type.ts b/src/api/system/Decoration/type.ts new file mode 100644 index 0000000..82f2a48 --- /dev/null +++ b/src/api/system/Decoration/type.ts @@ -0,0 +1,150 @@ +export interface DecorationVO { + /** + * 装修管理表id + */ + id: string | number; + + /** + * 所属小区id + */ + villageId: string | number; + + /** + * 所属房屋id + */ + houseId: string | number; + + /** + * 申请人姓名 + */ + applyName: string; + + /** + * 装修公司 + */ + decorationCompany: string; + + /** + * 装修内容 + */ + decorationContent: string; + + /** + * 装修押金 + */ + decorationDeposit: number; + + /** + * 装修验收结果 0通过 1未通过 + */ + inspectionResult: string; + + /** + * 备注 + */ + remark: string; + + /** + * 验收人 + */ + inspectionName: string; +} + +export interface DecorationForm extends BaseEntity { + /** + * 装修管理表id + */ + id?: string | number; + + /** + * 所属小区id + */ + villageId?: string | number; + + /** + * 所属房屋id + */ + houseId?: string | number; + + /** + * 申请人姓名 + */ + applyName?: string; + + /** + * 装修公司 + */ + decorationCompany?: string; + + /** + * 装修内容 + */ + decorationContent?: string; + + /** + * 装修押金 + */ + decorationDeposit?: number; + + /** + * 装修验收结果 0通过 1未通过 + */ + inspectionResult?: string; + + /** + * 备注 + */ + remark?: string; + + /** + * 验收人 + */ + inspectionName?: string; +} + +export interface DecorationQuery extends PageQuery { + /** + * 所属小区id + */ + villageId?: string | number; + + /** + * 所属房屋id + */ + houseId?: string | number; + + /** + * 申请人姓名 + */ + applyName?: string; + + /** + * 装修公司 + */ + decorationCompany?: string; + + /** + * 装修内容 + */ + decorationContent?: string; + + /** + * 装修押金 + */ + decorationDeposit?: number; + + /** + * 装修验收结果 0通过 1未通过 + */ + inspectionResult?: string; + + /** + * 验收人 + */ + inspectionName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/api/system/HandleLog/index.ts b/src/api/system/HandleLog/index.ts new file mode 100644 index 0000000..d259c43 --- /dev/null +++ b/src/api/system/HandleLog/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { HandleLogVO, HandleLogForm, HandleLogQuery } from '@/api/system/HandleLog/type'; + +/** + * 查询办事记录列表 + * @param query + * @returns {*} + */ + +export const listHandleLog = (query?: HandleLogQuery): AxiosPromise => { + return request({ + url: '/handleLog/list', + method: 'get', + params: query + }); +}; + +/** + * 查询办事记录详细 + * @param id + */ +export const getHandleLog = (id: string | number): AxiosPromise => { + return request({ + url: '/handleLog/' + id, + method: 'get' + }); +}; + +/** + * 新增办事记录 + * @param data + */ +export const addHandleLog = (data: HandleLogForm) => { + return request({ + url: '/handleLog', + method: 'post', + data: data + }); +}; + +/** + * 修改办事记录 + * @param data + */ +export const updateHandleLog = (data: HandleLogForm) => { + return request({ + url: '/handleLog', + method: 'put', + data: data + }); +}; + +/** + * 删除办事记录 + * @param id + */ +export const delHandleLog = (id: string | number | Array) => { + return request({ + url: '/handleLog/' + id, + method: 'delete' + }); +}; diff --git a/src/api/system/HandleLog/type.ts b/src/api/system/HandleLog/type.ts new file mode 100644 index 0000000..c30a6df --- /dev/null +++ b/src/api/system/HandleLog/type.ts @@ -0,0 +1,95 @@ +export interface HandleLogVO { + /** + * 办事记录表id + */ + id: string | number; + + /** + * 办事内容 + */ + content: string; + + /** + * 求助人 + */ + seekName: string; + + /** + * 联系方式 + */ + phone: string; + + /** + * 办事时间 + */ + handleTime: string; + + /** + * 办事地点 + */ + handlePosition: string; +} + +export interface HandleLogForm extends BaseEntity { + /** + * 办事记录表id + */ + id?: string | number; + + /** + * 办事内容 + */ + content?: string; + + /** + * 求助人 + */ + seekName?: string; + + /** + * 联系方式 + */ + phone?: string; + + /** + * 办事时间 + */ + handleTime?: string; + + /** + * 办事地点 + */ + handlePosition?: string; +} + +export interface HandleLogQuery extends PageQuery { + /** + * 办事内容 + */ + content?: string; + + /** + * 求助人 + */ + seekName?: string; + + /** + * 联系方式 + */ + phone?: string; + + /** + * 办事时间 + */ + handleTime?: string; + + /** + * 办事地点 + */ + handlePosition?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/api/system/NoticePc/index.ts b/src/api/system/NoticePc/index.ts new file mode 100644 index 0000000..6e5e57a --- /dev/null +++ b/src/api/system/NoticePc/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { NoticeVO, NoticeForm, NoticeQuery } from '@/api/system/NoticePc/type'; + +/** + * 查询公告信息列表 + * @param query + * @returns {*} + */ + +export const listNotice = (query?: NoticeQuery): AxiosPromise => { + return request({ + url: '/notice/list', + method: 'get', + params: query + }); +}; + +/** + * 查询公告信息详细 + * @param noticeId + */ +export const getNotice = (noticeId: string | number): AxiosPromise => { + return request({ + url: '/notice/' + noticeId, + method: 'get' + }); +}; + +/** + * 新增公告信息 + * @param data + */ +export const addNotice = (data: NoticeForm) => { + return request({ + url: '/notice', + method: 'post', + data: data + }); +}; + +/** + * 修改公告信息 + * @param data + */ +export const updateNotice = (data: NoticeForm) => { + return request({ + url: '/notice', + method: 'put', + data: data + }); +}; + +/** + * 删除公告信息 + * @param noticeId + */ +export const delNotice = (noticeId: string | number | Array) => { + return request({ + url: '/notice/' + noticeId, + method: 'delete' + }); +}; diff --git a/src/api/system/NoticePc/type.ts b/src/api/system/NoticePc/type.ts new file mode 100644 index 0000000..4f4ca9f --- /dev/null +++ b/src/api/system/NoticePc/type.ts @@ -0,0 +1,125 @@ +export interface NoticeVO { + /** + * 公告ID + */ + noticeId: string | number; + + /** + * 公告标题 + */ + noticeTitle: string; + + /** + * 公告内容 + */ + noticeContent: string; + + /** + * 作者 + */ + author: string; + + /** + * 紧急程度 0=普通 1=紧急 2=非常紧急 + */ + urgencyLevel: string; + + /** + * 发布状态 0=草稿 1=已发布 + */ + publishStatus: string; + + /** + * 发布人 + */ + publishBy: string; + + /** + * 发布日期 + */ + publishTime: string; +} + +export interface NoticeForm extends BaseEntity { + /** + * 公告ID + */ + noticeId?: string | number; + + /** + * 公告标题 + */ + noticeTitle?: string; + + /** + * 公告内容 + */ + noticeContent?: string; + + /** + * 作者 + */ + author?: string; + + /** + * 紧急程度 0=普通 1=紧急 2=非常紧急 + */ + urgencyLevel?: string; + + /** + * 发布状态 0=草稿 1=已发布 + */ + publishStatus?: string; + + /** + * 发布人 + */ + publishBy?: string; + + /** + * 发布日期 + */ + publishTime?: string; +} + +export interface NoticeQuery extends PageQuery { + /** + * 公告标题 + */ + noticeTitle?: string; + + /** + * 公告内容 + */ + noticeContent?: string; + + /** + * 作者 + */ + author?: string; + + /** + * 紧急程度 0=普通 1=紧急 2=非常紧急 + */ + urgencyLevel?: string; + + /** + * 发布状态 0=草稿 1=已发布 + */ + publishStatus?: string; + + /** + * 发布人 + */ + publishBy?: string; + + /** + * 发布日期 + */ + publishTime?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/assets/icons/svg/viliageIcon.svg b/src/assets/icons/svg/viliageIcon.svg new file mode 100644 index 0000000..6ea34ca --- /dev/null +++ b/src/assets/icons/svg/viliageIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/DictTag/index.vue b/src/components/DictTag/index.vue index 79e6a59..49150ac 100644 --- a/src/components/DictTag/index.vue +++ b/src/components/DictTag/index.vue @@ -50,7 +50,7 @@ const props = withDefaults(defineProps(), { const values = computed(() => { if (props.value === '' || props.value === null || typeof props.value === 'undefined') return []; - if (typeof props.value === 'number' || typeof props.value === 'boolean') return [props.value] + if (typeof props.value === 'number' || typeof props.value === 'boolean') return [props.value]; return Array.isArray(props.value) ? props.value.map((item) => '' + item) : String(props.value).split(props.separator); }); @@ -88,8 +88,8 @@ const handleArray = (array: Array) => { }; const isValueMatch = (itemValue: any) => { - return values.value.some(val => val == itemValue) -} + return values.value.some((val) => val == itemValue); +}; diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue index f21ef2e..77584b7 100644 --- a/src/components/Editor/index.vue +++ b/src/components/Editor/index.vue @@ -80,6 +80,14 @@ const options = ref({ } else { Quill.format('image', true); } + }, + link: function (value) { + if (value) { + const href = prompt('输入文件链接地址'); + Quill.format('link', href); + } else { + Quill.format('link', false); + } } } } diff --git a/src/components/Pageheader/index.vue b/src/components/Pageheader/index.vue index f7aa71f..d9ec8ef 100644 --- a/src/components/Pageheader/index.vue +++ b/src/components/Pageheader/index.vue @@ -19,7 +19,7 @@ - - - diff --git a/src/views/login.vue b/src/views/login.vue index 57accab..7d7572d 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -27,7 +27,9 @@
{{ proxy.$t('login.rememberPassword') }} -
忘记密码?
+
+ 忘记密码? +
@@ -192,6 +194,9 @@ onMounted(() => { diff --git a/src/views/system/Decoration/index.vue b/src/views/system/Decoration/index.vue new file mode 100644 index 0000000..6d62890 --- /dev/null +++ b/src/views/system/Decoration/index.vue @@ -0,0 +1,187 @@ + + + diff --git a/src/views/system/HandleLog/addHandleLog.vue b/src/views/system/HandleLog/addHandleLog.vue new file mode 100644 index 0000000..86ae1f5 --- /dev/null +++ b/src/views/system/HandleLog/addHandleLog.vue @@ -0,0 +1,174 @@ + + + + diff --git a/src/views/system/HandleLog/index.vue b/src/views/system/HandleLog/index.vue new file mode 100644 index 0000000..f82d305 --- /dev/null +++ b/src/views/system/HandleLog/index.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/src/views/system/MonthCard/index.vue b/src/views/system/MonthCard/index.vue index ca19839..0d17974 100644 --- a/src/views/system/MonthCard/index.vue +++ b/src/views/system/MonthCard/index.vue @@ -276,7 +276,7 @@ const submitForm = () => { /** 删除按钮操作 */ const handleDelete = async (row?: MonthCardVO) => { const _ids = row?.id || ids.value; - await proxy?.$modal.confirm('是否确认删除月卡管理编号为"' + _ids + '"的数据项?').finally(() => (loading.value = false)); + await proxy?.$modal.confirm('该信息删除后无法恢复,确定要删除吗?').finally(() => (loading.value = false)); await delMonthCard(_ids); proxy?.$modal.msgSuccess('删除成功'); await getList(); diff --git a/src/views/system/NoticePc/addNoticePc.vue b/src/views/system/NoticePc/addNoticePc.vue new file mode 100644 index 0000000..8ebb651 --- /dev/null +++ b/src/views/system/NoticePc/addNoticePc.vue @@ -0,0 +1,173 @@ + + + + diff --git a/src/views/system/NoticePc/index.vue b/src/views/system/NoticePc/index.vue new file mode 100644 index 0000000..0a0307f --- /dev/null +++ b/src/views/system/NoticePc/index.vue @@ -0,0 +1,191 @@ + + + diff --git a/src/views/system/ParkingCost/index.vue b/src/views/system/ParkingCost/index.vue index 2a4b3d3..f6bc367 100644 --- a/src/views/system/ParkingCost/index.vue +++ b/src/views/system/ParkingCost/index.vue @@ -231,7 +231,7 @@ const handleUpdate = async (row?: ParkingCostVO) => { /** 删除按钮操作 */ const handleDelete = async (row?: ParkingCostVO) => { const _ids = row?.id || ids.value; - await proxy?.$modal.confirm('是否确认删除停车缴费管理编号为"' + _ids + '"的数据项?').finally(() => (loading.value = false)); + await proxy?.$modal.confirm('该信息删除后无法恢复,确定要删除吗?').finally(() => (loading.value = false)); await delParkingCost(_ids); proxy?.$modal.msgSuccess('删除成功'); await getList(); diff --git a/src/views/system/Repair/index.vue b/src/views/system/Repair/index.vue index 14780e6..1a64f83 100644 --- a/src/views/system/Repair/index.vue +++ b/src/views/system/Repair/index.vue @@ -1,15 +1,10 @@