diff --git a/src/api/room/addRoomViewApi.js b/src/api/room/addRoomViewApi.js new file mode 100644 index 0000000..61f5cbb --- /dev/null +++ b/src/api/room/addRoomViewApi.js @@ -0,0 +1,70 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 保存房屋信息 +export function saveRoom(data) { + return new Promise((resolve, reject) => { + data.communityId = getCommunityId() + request({ + url: '/room.saveRoom', + method: 'post', + data + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询楼栋信息 +export function queryFloors(params) { + return new Promise((resolve, reject) => { + params.communityId = params.communityId || getCommunityId() + request({ + url: '/floor.queryFloors', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询单元信息 +export function queryUnits(params) { + return new Promise((resolve, reject) => { + params.communityId = params.communityId || getCommunityId() + request({ + url: '/unit.queryUnits', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询业主信息 +export function queryOwners(params) { + return new Promise((resolve, reject) => { + params.communityId = params.communityId || getCommunityId() + request({ + url: '/owner.queryOwners', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/owner/SearchOwner.vue b/src/components/owner/SearchOwner.vue new file mode 100644 index 0000000..332b7d0 --- /dev/null +++ b/src/components/owner/SearchOwner.vue @@ -0,0 +1,155 @@ + + + + + \ No newline at end of file diff --git a/src/components/room/deleteRoom.vue b/src/components/room/deleteRoom.vue index 58b2dd4..24e716c 100644 --- a/src/components/room/deleteRoom.vue +++ b/src/components/room/deleteRoom.vue @@ -22,10 +22,8 @@ export default { } }, created() { - this.$eventBus.$on('deleteRoom', this.open) }, beforeDestroy() { - this.$eventBus.$off('deleteRoom', this.open) }, methods: { open(roomInfo) { diff --git a/src/i18n/index.js b/src/i18n/index.js index 5ff0718..85fcc5d 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -123,6 +123,7 @@ import { messages as roomRenovationManageMessages } from '../views/community/roo import { messages as feeConfigManageMessages } from '../views/fee/feeConfigManageLang' import { messages as payFeeConfigDiscountManageMessages } from '../views/fee/payFeeConfigDiscountManageLang' import { messages as roomMessages } from '../views/room/roomLang.js' +import { messages as addRoomViewMessages } from '../views/room/addRoomViewLang' Vue.use(VueI18n) @@ -251,6 +252,7 @@ const messages = { ...feeConfigManageMessages.en, ...payFeeConfigDiscountManageMessages.en, ...roomMessages.en, + ...addRoomViewMessages.en, }, zh: { ...loginMessages.zh, @@ -374,6 +376,7 @@ const messages = { ...feeConfigManageMessages.zh, ...payFeeConfigDiscountManageMessages.zh, ...roomMessages.zh, + ...addRoomViewMessages.zh, } } diff --git a/src/router/index.js b/src/router/index.js index 2139ef2..293d2b9 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -601,6 +601,11 @@ const routes = [ name: '/pages/property/room', component: () => import('@/views/room/roomList.vue') }, + { + path:'/views/room/addRoomView', + name:'/views/room/addRoomView', + component: () => import('@/views/room/addRoomViewList.vue') + }, // 其他子路由可以在这里添加 ] }, diff --git a/src/views/layout/layout.vue b/src/views/layout/layout.vue index fcc1b43..444b998 100644 --- a/src/views/layout/layout.vue +++ b/src/views/layout/layout.vue @@ -334,7 +334,8 @@ export default { .app-main { background-color: #f5f7fa; - padding: 10px; + height: calc(100vh - 60px) ; + padding: 0px; } :deep(.el-menu--horizontal) { diff --git a/src/views/room/addRoomViewLang.js b/src/views/room/addRoomViewLang.js new file mode 100644 index 0000000..8c48a43 --- /dev/null +++ b/src/views/room/addRoomViewLang.js @@ -0,0 +1,124 @@ +export const messages = { + en: { + addRoomView: { + title: 'Add Room', + building: 'Building', + unit: 'Unit', + roomNumber: 'Room Number', + roomFloor: 'Room Floor', + roomType: 'Room Type', + rent: 'Rent', + builtUpArea: 'Built-up Area (㎡)', + roomArea: 'Room Area (㎡)', + feeCoefficient: 'Fee Coefficient', + roomStatus: 'Room Status', + owner: 'Owner', + remark: 'Remark', + selectOwner: 'Select Owner', + requiredRoomNumber: 'Required, please enter room number', + requiredRoomFloor: 'Required, please enter room floor', + requiredRent: 'Required, please enter rent', + requiredBuiltUpArea: 'Required, please enter built-up area', + requiredRoomArea: 'Required, please enter room area', + requiredFeeCoefficient: 'Required, please enter fee coefficient', + requiredOwner: 'Required, please select owner', + optionalRemark: 'Optional, please enter remark', + notSold: 'Not Sold', + living: 'Living', + delivered: 'Delivered', + decorated: 'Decorated', + notLived: 'Not Lived', + decorating: 'Decorating', + saveSuccess: 'Room added successfully', + saveError: 'Failed to add room', + validate: { + roomNumRequired: 'Room number is required', + roomNumMaxLength: 'Room number cannot exceed 64 characters', + layerRequired: 'Room floor is required', + builtUpAreaRequired: 'Built-up area is required', + builtUpAreaFormat: 'Invalid built-up area format, e.g. 300.00', + roomAreaRequired: 'Room area is required', + roomAreaFormat: 'Invalid room area format, e.g. 300.00', + feeCoefficientRequired: 'Fee coefficient is required', + feeCoefficientFormat: 'Invalid fee coefficient format, e.g. 1.00', + stateRequired: 'Room status is required', + stateMaxLength: 'Room status cannot exceed 12 characters', + roomSubTypeRequired: 'Room type is required', + remarkMaxLength: 'Remark cannot exceed 200 characters' + } + }, + searchOwner: { + title: 'Select Owner', + ownerId: 'Owner ID', + name: 'Name', + personType: 'Person Type', + personRole: 'Person Role', + idCard: 'ID Card', + contact: 'Contact', + operation: 'Operation', + roomPlaceholder: 'Enter room number (Building-Unit-Room)', + ownerPlaceholder: 'Enter owner name' + } + }, + zh: { + addRoomView: { + title: '添加房屋', + building: '楼栋', + unit: '单元', + roomNumber: '房屋编号', + roomFloor: '房屋楼层', + roomType: '房屋类型', + rent: '租金', + builtUpArea: '建筑面积(平方)', + roomArea: '室内面积(平方)', + feeCoefficient: '算费系数', + roomStatus: '房屋状态', + owner: '业主', + remark: '备注', + selectOwner: '选择业主', + requiredRoomNumber: '必填,请填写房屋编号', + requiredRoomFloor: '必填,请填写房屋楼层', + requiredRent: '必填,请填写租金', + requiredBuiltUpArea: '必填,请填写建筑面积', + requiredRoomArea: '必填,请填写室内面积', + requiredFeeCoefficient: '必填,请填写算费系数', + requiredOwner: '必填,请选择业主', + optionalRemark: '选填,请填写备注', + notSold: '未销售', + living: '已入住', + delivered: '已交房', + decorated: '已装修', + notLived: '未入住', + decorating: '装修中', + saveSuccess: '房屋添加成功', + saveError: '房屋添加失败', + validate: { + roomNumRequired: '房屋编号不能为空', + roomNumMaxLength: '房屋编号长度不能超过64位', + layerRequired: '房屋楼层不能为空', + builtUpAreaRequired: '建筑面积不能为空', + builtUpAreaFormat: '建筑面积错误,如 300.00', + roomAreaRequired: '室内面积不能为空', + roomAreaFormat: '室内面积错误,如 300.00', + feeCoefficientRequired: '算费系数不能为空', + feeCoefficientFormat: '算费系数错误,如 1.00', + stateRequired: '房屋状态不能为空', + stateMaxLength: '房屋状态不能超过12位', + roomSubTypeRequired: '房屋类型不能为空', + remarkMaxLength: '备注内容不能超过200' + } + }, + searchOwner: { + title: '选择业主', + ownerId: '业主编号', + name: '名称', + personType: '人员类型', + personRole: '人员角色', + idCard: '证件号', + contact: '联系方式', + operation: '操作', + roomPlaceholder: '输入房屋编号楼栋-单元-房屋', + ownerPlaceholder: '输入业主名称' + } + } +} \ No newline at end of file diff --git a/src/views/room/addRoomViewList.vue b/src/views/room/addRoomViewList.vue new file mode 100644 index 0000000..7c33f31 --- /dev/null +++ b/src/views/room/addRoomViewList.vue @@ -0,0 +1,376 @@ + + + + + \ No newline at end of file diff --git a/src/views/room/roomList.vue b/src/views/room/roomList.vue index b498b43..315e1b4 100644 --- a/src/views/room/roomList.vue +++ b/src/views/room/roomList.vue @@ -505,7 +505,7 @@ export default { }, // 按钮操作相关方法 openAddRoom() { - this.$router.push('/pages/property/addRoomView') + this.$router.push('/views/room/addRoomView') }, openEditRoomModel(room) {