diff --git a/admin/src/api/pmtenant.js b/admin/src/api/pmtenant.js index da5bebc..d7b3bd7 100644 --- a/admin/src/api/pmtenant.js +++ b/admin/src/api/pmtenant.js @@ -61,3 +61,16 @@ export function pmtenantListApi(params) { }) } +/** + * 根据业主ID获取租户列表 + * @param ownerId + * @param params + */ +export function pmtenantListByOwnerIdApi(ownerId, params) { + return request({ + url: `autogencode/pmtenant/listByOwnerId/${ownerId}`, + method: 'GET', + params + }) +} + diff --git a/admin/src/api/pmtentanthouserel.js b/admin/src/api/pmtentanthouserel.js new file mode 100644 index 0000000..1be441a --- /dev/null +++ b/admin/src/api/pmtentanthouserel.js @@ -0,0 +1,69 @@ +/* + * @Author: zxf 1532322479@qq.com + * @Date: 2026-01-04 17:03:25 + * @LastEditors: zxf 1532322479@qq.com + * @LastEditTime: 2026-01-04 17:05:28 + * @FilePath: \crmebTwo\admin\src\api\pmtentanthouserel.js + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +import request from '@/utils/request' + +/** + * 新增pmtenanthouserel + * @param pram + */ +export function pmtentanthouserelCreateApi(data) { + return request({ + url: `autogencode/pmtenanthouserel/save`, + method: 'POST', + data + }) +} + +/** + * pmtenanthouserel更新 + * @param pram + */ +export function pmtentanthouserelUpdateApi(data) { + return request({ + url: `autogencode/pmtenanthouserel/update`, + method: 'POST', + data + }) +} + +/** + * pmtenanthouserel详情 + * @param pram + */ +export function pmtentanthouserelDetailApi(id) { + return request({ + url: `autogencode/pmtenanthouserel/info/${id}`, + method: 'GET' + }) +} + +/** + * pmtenanthouserel批量删除 + * @param ids + */ +export function pmtentanthouserelDeleteApi(ids) { + return request({ + url: `autogencode/pmtenanthouserel/delete`, + method: 'POST', + data: ids + }) +} + + +/** + * pmtenanthouserel列表 + * @param pram + */ +export function pmtentanthouserelListApi(params) { + return request({ + url: `autogencode/pmtenanthouserel/list`, + method: 'GET', + params + }) +} diff --git a/admin/src/api/syspost.js b/admin/src/api/syspost.js new file mode 100644 index 0000000..da1a1ee --- /dev/null +++ b/admin/src/api/syspost.js @@ -0,0 +1,63 @@ + +import request from '@/utils/request' + +/** + * 新增syspost + * @param pram + */ +export function syspostCreateApi(data) { + return request({ + url: `autogencode/syspost/save`, + method: 'POST', + data + }) +} + +/** + * syspost更新 + * @param pram + */ +export function syspostUpdateApi(data) { + return request({ + url: `autogencode/syspost/update`, + method: 'POST', + data + }) +} + +/** + * syspost详情 + * @param pram + */ +export function syspostDetailApi(id) { + return request({ + url: `autogencode/syspost/info/${id}`, + method: 'GET' + }) +} + +/** + * syspost批量删除 + * @param ids + */ +export function syspostDeleteApi(ids) { + return request({ + url: `autogencode/syspost/delete`, + method: 'POST', + data: ids + }) +} + + +/** + * syspost列表 + * @param pram + */ +export function syspostListApi(params) { + return request({ + url: `autogencode/syspost/list`, + method: 'GET', + params + }) +} + diff --git a/admin/src/api/systemadmin.js b/admin/src/api/systemadmin.js index 47cfd45..54fa6ff 100644 --- a/admin/src/api/systemadmin.js +++ b/admin/src/api/systemadmin.js @@ -56,7 +56,8 @@ export function adminAdd(pram) { roles: pram.roles.join(','), status: pram.status, phone: pram.phone, - depts: pram.depts + depts: pram.depts, + posts: pram.posts } return request({ url: '/admin/system/admin/save', @@ -76,7 +77,8 @@ export function adminUpdate(pram) { id: pram.id, isDel: pram.isDel, phone: pram.phone, - depts: pram.depts + depts: pram.depts, + posts: pram.posts } return request({ url: '/admin/system/admin/update', diff --git a/admin/src/api/sysuserpost.js b/admin/src/api/sysuserpost.js new file mode 100644 index 0000000..b84e515 --- /dev/null +++ b/admin/src/api/sysuserpost.js @@ -0,0 +1,63 @@ + +import request from '@/utils/request' + +/** + * 新增sysuserpost + * @param pram + */ +export function sysuserpostCreateApi(data) { + return request({ + url: `autogencode/sysuserpost/save`, + method: 'POST', + data + }) +} + +/** + * sysuserpost更新 + * @param pram + */ +export function sysuserpostUpdateApi(data) { + return request({ + url: `autogencode/sysuserpost/update`, + method: 'POST', + data + }) +} + +/** + * sysuserpost详情 + * @param pram + */ +export function sysuserpostDetailApi(id) { + return request({ + url: `autogencode/sysuserpost/info/${id}`, + method: 'GET' + }) +} + +/** + * sysuserpost批量删除 + * @param ids + */ +export function sysuserpostDeleteApi(ids) { + return request({ + url: `autogencode/sysuserpost/delete`, + method: 'POST', + data: ids + }) +} + + +/** + * sysuserpost列表 + * @param pram + */ +export function sysuserpostListApi(params) { + return request({ + url: `autogencode/sysuserpost/list`, + method: 'GET', + params + }) +} + diff --git a/admin/src/views/pm/pmowner/index.vue b/admin/src/views/pm/pmowner/index.vue index 44e9f6b..8a11fb3 100644 --- a/admin/src/views/pm/pmowner/index.vue +++ b/admin/src/views/pm/pmowner/index.vue @@ -1,5 +1,34 @@ + + + + + + + + + + + + @@ -7,27 +36,9 @@ - - - - - - - - - - - - - - - - - - 查询 重置 @@ -47,12 +58,6 @@ align="center" width="50"> - - - - - - - - - - - - + label="所属部门"> + + {{ getDeptName(scope.row.deptId) }} + + label="所属房屋"> + + {{ getHouseName(scope.row.houseId) }} + + label="业主状态"> + label="备注"> + + + diff --git a/admin/src/views/pm/pmowner/rent-record-add-and-update.vue b/admin/src/views/pm/pmowner/rent-record-add-and-update.vue new file mode 100644 index 0000000..7b3a8ff --- /dev/null +++ b/admin/src/views/pm/pmowner/rent-record-add-and-update.vue @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + diff --git a/admin/src/views/pm/pmowner/tenant-add-and-update.vue b/admin/src/views/pm/pmowner/tenant-add-and-update.vue new file mode 100644 index 0000000..e4e2790 --- /dev/null +++ b/admin/src/views/pm/pmowner/tenant-add-and-update.vue @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 添加租赁记录 + + + + + + + + + + + + + {{ scope.row.depositAmount || 0 }} 元 + + + + + {{ scope.row.rentAmount || 0 }} 元 + + + + + + + + {{ '修改' }} + {{ '删除' }} + + + + + + + 取消 + 确定 + + + + + + + + + diff --git a/admin/src/views/sys/post/index.vue b/admin/src/views/sys/post/index.vue new file mode 100644 index 0000000..ef2596d --- /dev/null +++ b/admin/src/views/sys/post/index.vue @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + 查询 + 重置 + 新增数据 + 批量删除 + + + + + + + + + + + + + + + + + + + + + {{ '修改' }} + 删除 + + + + + + + + + + + diff --git a/admin/src/views/sys/post/syspost-add-and-update.vue b/admin/src/views/sys/post/syspost-add-and-update.vue new file mode 100644 index 0000000..a7646a4 --- /dev/null +++ b/admin/src/views/sys/post/syspost-add-and-update.vue @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + diff --git a/admin/src/views/sys/user/post/index.vue b/admin/src/views/sys/user/post/index.vue new file mode 100644 index 0000000..17a2263 --- /dev/null +++ b/admin/src/views/sys/user/post/index.vue @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + 新增数据 + 批量删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ '修改' }} + 删除 + + + + + + + + + + + diff --git a/admin/src/views/sys/user/post/sysuserpost-add-and-update.vue b/admin/src/views/sys/user/post/sysuserpost-add-and-update.vue new file mode 100644 index 0000000..7881f8d --- /dev/null +++ b/admin/src/views/sys/user/post/sysuserpost-add-and-update.vue @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + diff --git a/admin/src/views/systemSetting/administratorAuthority/adminList/edit.vue b/admin/src/views/systemSetting/administratorAuthority/adminList/edit.vue index e0554ed..31a7f40 100644 --- a/admin/src/views/systemSetting/administratorAuthority/adminList/edit.vue +++ b/admin/src/views/systemSetting/administratorAuthority/adminList/edit.vue @@ -34,12 +34,22 @@ placeholder="请输入手机号" size="large"/> - + + + + @@ -58,10 +68,12 @@ import * as roleApi from '@/api/role.js' import * as systemAdminApi from '@/api/systemadmin.js' import * as deptApi from '@/api/sysdept.js' +import * as postApi from '@/api/syspost.js' +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import {Debounce} from '@/utils/validate' export default { - // name: "edit", - components: { }, + components: { Treeselect }, props: { isCreate: { type: Number, @@ -109,10 +121,12 @@ export default { status: null, id: null, phone: null, - depts: [] + depts: [], + posts: [] }, roleList: [], deptTreeOptions: [], + postList: [], savedDepts: null, // 保存从editData获取的部门数据 rules: { account: [{ required: true, message: '请填管理员账号', trigger: ['blur', 'change'] }], @@ -128,6 +142,7 @@ export default { this.initEditData() this.handleGetRoleList() this.handleGetDeptList() + this.handleGetPostList() }, methods: { close() { @@ -135,7 +150,7 @@ export default { }, handleGetRoleList() { const _pram = { - page: 1, + page:1, limit: this.constants.page.limit[4], status: 1 } @@ -153,15 +168,37 @@ export default { handleGetDeptList() { deptApi.deptTreeSelect().then(res => { this.deptTree = res - this.deptTreeOptions = this.flattenDeptTree(res) - + this.deptTreeOptions = res + // 部门数据加载完成后,设置pram.depts if (this.isCreate === 1 && this.savedDepts) { this.setDeptData(this.savedDepts) } }) }, - + handleGetPostList() { + const _pram = { + page: 1, + limit: this.constants.page.limit[4], + status: 0 + } + postApi.syspostListApi(_pram).then(data => { + this.postList = data.list || [] + }) + }, + + // 转换部门数据结构,用于 treeselect + normalizer(node) { + if (node.children && !node.children.length) { + delete node.children; + } + return { + id: node.deptId ? node.deptId : '0', + label: node.deptName ? node.deptName : '顶级部门', + children: node.children + }; + }, + // 设置部门数据 setDeptData(depts) { const _depts = [] @@ -177,22 +214,12 @@ export default { } this.pram.depts = _depts }, - flattenDeptTree(tree) { - let result = [] - for (let node of tree) { - result.push(node) - if (node.children && node.children.length > 0) { - result = result.concat(this.flattenDeptTree(node.children)) - } - } - return result - }, initEditData() { if (this.isCreate !== 1) return - const { account, realName, roles, level, status, id, phone, depts } = this.editData + const { account, realName, roles, level, status, id, phone, depts, posts } = this.editData this.pram.account = account this.pram.realName = realName - + // 处理角色数据 const _roles = [] if (roles && roles.length > 0 && !roles.includes(',')) { @@ -203,10 +230,29 @@ export default { _roles.push(...roles.split(',').map(item => Number.parseInt(item))) } this.pram.roles = _roles - + // 只保存部门数据,不立即设置到pram.depts this.savedDepts = depts - + + // 处理岗位数据 + if (posts) { + if (Array.isArray(posts)) { + // 如果posts已经是数组,直接使用(保持字符串类型) + this.pram.posts = posts + } else if (typeof posts === 'string') { + // 如果posts是字符串,进行解析 + const _posts = [] + if (posts.length > 0 && !posts.includes(',')) { + _posts.push(posts) + } else if (posts) { + _posts.push(...posts.split(',')) + } + this.pram.posts = _posts + } + } else { + this.pram.posts = [] + } + this.pram.status = status this.pram.id = id this.pram.phone = phone @@ -224,9 +270,10 @@ export default { }) }), handlerSave() { - // 构建包含部门信息的请求数据 + // 构建包含部门信息和岗位信息的请求数据 const requestData = { - ...this.pram + ...this.pram, + posts: this.pram.posts // 直接传递depts数组,不转换为字符串 } systemAdminApi.adminAdd(requestData).then(data => { @@ -235,12 +282,14 @@ export default { }) }, handlerEdit() { - // 构建包含部门信息的请求数据 + // 构建包含部门信息和岗位信息的请求数据 const requestData = { ...this.pram, roles: this.pram.roles.join(','), // adminUpdate需要字符串类型的roles - depts: this.pram.depts // adminUpdate需要数组类型的depts + depts: this.pram.depts, // adminUpdate需要数组类型的depts + posts: this.pram.posts } + console.log(requestData) systemAdminApi.adminUpdate(requestData).then(data => { this.$message.success('更新管理员成功') this.$emit('hideEditDialog') diff --git a/admin/src/views/systemSetting/administratorAuthority/adminList/index.vue b/admin/src/views/systemSetting/administratorAuthority/adminList/index.vue index 16cfea7..e3cc961 100644 --- a/admin/src/views/systemSetting/administratorAuthority/adminList/index.vue +++ b/admin/src/views/systemSetting/administratorAuthority/adminList/index.vue @@ -1,6 +1,35 @@ - + + + + + + + + + + + + + @@ -133,12 +162,15 @@ @hideEditDialog="hideEditDialog" /> + +