From b87a594d4e60661150e2ab8bfbef34a6a1ff21e4 Mon Sep 17 00:00:00 2001 From: Zy <1448159279@qq.com> Date: Tue, 7 Apr 2026 18:02:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=B0=8F=E5=8C=BA=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 7 +- package.json | 1 + src/api/system/community/index.ts | 59 +++ src/api/system/community/type.ts | 20 + src/api/system/house/index.ts | 24 + src/api/system/house/type.ts | 65 +++ src/assets/styles/index.scss | 9 - src/components/Breadcrumb/index.vue | 1 - src/components/ContextMenu/index.vue | 2 - src/components/Pageheader/index.vue | 6 +- src/components/Process/submitVerify.vue | 1 - src/enums/RespEnum.ts | 8 +- src/layout/components/Navbar.vue | 22 +- src/layout/components/Sidebar/Logo.vue | 32 +- src/layout/components/Sidebar/index.vue | 1 - src/layout/components/TagsView/index.vue | 10 +- src/router/index.ts | 2 +- src/settings.ts | 2 +- src/store/modules/house.ts | 59 ++- src/store/modules/settings.ts | 1 - src/types/axios.d.ts | 2 +- src/utils/request.ts | 12 +- src/utils/vartype.ts | 9 + src/views/community/AddCommunity.vue | 421 ++++++++++++++---- src/views/community/index.vue | 220 ++++++--- src/views/login.vue | 1 - .../system/house/components/building.vue | 31 +- .../house/components/components/houseItem.vue | 7 +- .../house/components/components/table.vue | 113 ++--- src/views/system/house/components/unit.vue | 1 - src/views/system/house/index.vue | 46 +- src/views/system/storeroom/index.vue | 102 +++-- 32 files changed, 913 insertions(+), 384 deletions(-) create mode 100644 src/api/system/community/index.ts create mode 100644 src/api/system/community/type.ts create mode 100644 src/api/system/house/index.ts create mode 100644 src/api/system/house/type.ts create mode 100644 src/utils/vartype.ts diff --git a/.env.development b/.env.development index c022f39..051bbe9 100644 --- a/.env.development +++ b/.env.development @@ -1,6 +1,7 @@ # 页面标题 -VITE_APP_TITLE = -VITE_APP_LOGO_TITLE = RuoYi-Vue-Plus +VITE_APP_TITLE = 智慧物业后台管理系统 + +VITE_APP_LOGO_TITLE = 智慧物业后台管理系统 # 开发环境配置 VITE_APP_ENV = 'development' @@ -17,7 +18,7 @@ VITE_APP_MONITOR_ADMIN = 'http://192.168.0.222/admin/applications' # SnailJob 控制台地址 VITE_APP_SNAILJOB_ADMIN = 'http://192.168.0.222/snail-job' -VITE_APP_PORT = 80 +VITE_APP_PORT = 5173 # 接口加密功能开关(如需关闭 后端也必须对应关闭) VITE_APP_ENCRYPT = true diff --git a/package.json b/package.json index 59666e4..5b35286 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "axios": "1.13.6", "crypto-js": "4.2.0", "echarts": "6.0.0", + "element-china-area-data": "^6.1.0", "element-plus": "2.13.5", "file-saver": "2.0.5", "highlight.js": "11.11.1", diff --git a/src/api/system/community/index.ts b/src/api/system/community/index.ts new file mode 100644 index 0000000..0950a35 --- /dev/null +++ b/src/api/system/community/index.ts @@ -0,0 +1,59 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { communitylist_rows_type } from './type'; + +// 查询小区列表 +export function getCommunitylistAPI(): AxiosPromise { + return request({ + url: '/village/list', + method: 'get' + }); +} +/** 通过小区id获取小区信息 */ +export function getVillageByIdAPI(id: string): AxiosPromise { + return request({ + url: `/village/${id}`, + method: 'get' + }); +} +/** 删除小区 */ +export function deleteVillageByIdAPI(id: number): AxiosPromise { + return request({ + url: `/village/${id}`, + method: 'delete' + }); +} +/** 上传小区图片 */ +export function uploadVillageImageAPI(formdata: FormData): AxiosPromise<{ fileName: string; url: string; ossId: string }[]> { + return request({ + url: `/village/uploadImages`, + method: 'post', + headers: { + 'Content-Type': 'multipart/form-data' + }, + data: formdata + }); +} +/** 添加小区 */ +export function addVillageAPI(data: T) { + return request({ + url: `/village`, + method: 'post', + data: data + }); +} +/** 添加小区 */ +export function editVillageAPI(data: T) { + return request({ + url: `/village`, + method: 'put', + data: data + }); +} +/**切换小区 */ +export function switchVillageAPI(villageId: number) { + return request({ + url: `/village/switchVillage/${villageId}`, + method: 'POST' + }); +} diff --git a/src/api/system/community/type.ts b/src/api/system/community/type.ts new file mode 100644 index 0000000..4dd09fe --- /dev/null +++ b/src/api/system/community/type.ts @@ -0,0 +1,20 @@ +export interface communitylist_rows_type { + villageId?: number; + villageName: string; + villageCode: string; + address: string; + houseUse: number | null; + villageArea: number; + remark: string; + parkingSpaceCount: number; + villageImageUrl: string; + city: string | string[]; + status: '0' | '1'; + manageName: string; + managePhone: string; + manageVx: string; + manageEmail: string; + manageQq: string; + completDate: string; + choiceStatus: 0 | 1; +} diff --git a/src/api/system/house/index.ts b/src/api/system/house/index.ts new file mode 100644 index 0000000..0d79577 --- /dev/null +++ b/src/api/system/house/index.ts @@ -0,0 +1,24 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { BuildingUnit, BuildingVo } from './type'; + +// 楼栋--------------------------------------------------------------------------------------- +// 根据 小区id 和 类型 查询楼栋信息 +export function getBuildinglistAPI(villageId: number, buildingUse: number): AxiosPromise { + return request({ + url: '/building/byVillage', + method: 'get', + params: { + villageId: villageId, + buildingUse: buildingUse + } + }); +} + +// 房屋---------------------------------------------------------------------------------------------- +export function getHouselistAPI(buildingId: number): AxiosPromise { + return request({ + url: `/house/groupByUnitTree/${buildingId}`, + method: 'get' + }); +} diff --git a/src/api/system/house/type.ts b/src/api/system/house/type.ts new file mode 100644 index 0000000..58f7ff7 --- /dev/null +++ b/src/api/system/house/type.ts @@ -0,0 +1,65 @@ +export interface BuildingVo { + /** + * 楼栋名称/编号 + */ + buildingName: string; + /** + * 0住宅 1办公 2商用 3公寓 + */ + buildingUse: number; + /** + * 楼栋结构 + */ + buildStructure?: string; + /** + * 楼高 + */ + buildTall?: string; + /** + * 楼栋朝向 + */ + buildToward?: string; + /** + * 层数 + */ + floorCount?: number; + /** + * 楼栋ID + */ + id: number; + /** + * 备注 + */ + remark?: string; + /** + * 单元数 + */ + unitCount?: number; + /** + * 所属小区ID + */ + villageId?: number; + villageName?: string; +} + +// 楼栋 +export interface BuildingUnit { + actualFloorCount: number; + buildingFloorCount: number; + buildingId: number; + buildingName: string; + totalHouses: number; + unitNo: string; + floors: string; + floors_Json?: FloorsType[]; +} +// 楼层 +export interface FloorsType { + floorNo: string; + houses: HouseType[]; +} +// 房间 +export interface HouseType { + houseId: number; + houseNo: string; +} diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 72c6fd8..200a7a4 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -17,15 +17,6 @@ body { background: var(--el-bg-color-page); font-family: 'MiSans', 'HarmonyOS Sans SC', 'PingFang SC', 'Source Han Sans SC', 'Noto Sans SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; } -/* 图片统一初始化 */ -img { - border: none; - vertical-align: middle; - max-width: 100%; - height: auto; - -webkit-user-drag: none; - user-select: none; -} label { font-weight: 600; } diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index f21effd..c454020 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -38,7 +38,6 @@ const getBreadcrumb = () => { matched = [{ path: '/index', meta: { title: '首页' } }].concat(matched); } levelList.value = matched.filter((item) => item.meta && item.meta.title && item.meta.breadcrumb !== false); - console.log(levelList.value); }; const findPathNum = (str, char = '/') => { if (typeof str !== 'string' || str.length === 0) return 0; diff --git a/src/components/ContextMenu/index.vue b/src/components/ContextMenu/index.vue index 7387ae7..e0efd67 100644 --- a/src/components/ContextMenu/index.vue +++ b/src/components/ContextMenu/index.vue @@ -45,7 +45,6 @@ const open = async (e: MouseEvent, value: any) => { if (left + rect.width > window.innerWidth) { left = window.innerWidth - rect.width - 8; } - console.log('window', window.innerWidth); // 下边界碰撞 if (top + rect.height > window.innerHeight) { @@ -69,7 +68,6 @@ const open = async (e: MouseEvent, value: any) => { // 关闭 const close = () => { show.value = false; - console.log('close'); document.removeEventListener('click', close); document.removeEventListener('contextmenu', close); }; diff --git a/src/components/Pageheader/index.vue b/src/components/Pageheader/index.vue index 918708f..ed01728 100644 --- a/src/components/Pageheader/index.vue +++ b/src/components/Pageheader/index.vue @@ -14,8 +14,6 @@