From 11b4993b1ea3fca020948fcc7dde5c3676471b30 Mon Sep 17 00:00:00 2001 From: zxf <1532322479@qq.com> Date: Sat, 10 Jan 2026 16:24:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E8=81=8C=E5=B7=A5/?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=91=98=E5=B7=A5=E8=8F=9C=E5=8D=95=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/api/ebuser.js | 63 + admin/src/api/sysdept.js | 18 + admin/src/components/DictTag/index.vue | 2 +- .../views/eb/user/ebuser-add-and-update.vue | 443 +++++++ admin/src/views/eb/user/index.vue | 453 +++++++ admin/src/views/pm/pmowner/index.vue | 77 +- .../pm/pmowner/pmowner-add-and-update.vue | 169 ++- .../pm/pmowner/rent-record-add-and-update.vue | 17 +- .../pm/pmowner/tenant-add-and-update.vue | 372 +++--- admin/src/views/pm/tenant/index.vue | 2 +- .../pm/tenant/pmtenant-add-and-update.vue | 12 +- .../zbkj/admin/config/WebSecurityConfig.java | 4 - .../autogencode/config/WebMvcConfig.java | 33 + .../controller/EbUserController.java | 243 +++- .../controller/PmTenantController.java | 36 +- .../controller/SysDeptController.java | 126 +- .../autogencode/entity/PmTenantHouseRel.java | 130 +- .../java/com/zbkj/common/model/user/User.java | 9 + .../java/com/zbkj/common/vo/SysDeptTree.java | 15 +- .../front/controller/LoginController.java | 167 +++ .../zbkj/service/service/SysDeptService.java | 10 + .../service/impl/OrderServiceImpl.java | 5 +- .../service/impl/SysDeptServiceImpl.java | 44 +- .../java/com/zbkj/service/util/SignUtil.java | 80 ++ .../com/zbkj/service/util/WeiXinUtil.java | 1061 +++++++++++++++++ 25 files changed, 3279 insertions(+), 312 deletions(-) create mode 100644 admin/src/api/ebuser.js create mode 100644 admin/src/views/eb/user/ebuser-add-and-update.vue create mode 100644 admin/src/views/eb/user/index.vue create mode 100644 crmeb/crmeb-admin/src/main/java/com/zbkj/modules/autogencode/config/WebMvcConfig.java create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/util/SignUtil.java create mode 100644 crmeb/crmeb-service/src/main/java/com/zbkj/service/util/WeiXinUtil.java diff --git a/admin/src/api/ebuser.js b/admin/src/api/ebuser.js new file mode 100644 index 0000000..7d225c6 --- /dev/null +++ b/admin/src/api/ebuser.js @@ -0,0 +1,63 @@ + +import request from '@/utils/request' + +/** + * 新增ebuser + * @param pram + */ +export function ebuserCreateApi(data) { + return request({ + url: `autogencode/ebuser/save`, + method: 'POST', + data + }) +} + +/** + * ebuser更新 + * @param pram + */ +export function ebuserUpdateApi(data) { + return request({ + url: `autogencode/ebuser/update`, + method: 'POST', + data + }) +} + +/** + * ebuser详情 + * @param pram + */ +export function ebuserDetailApi(id) { + return request({ + url: `autogencode/ebuser/info/${id}`, + method: 'GET' + }) +} + +/** + * ebuser批量删除 + * @param ids + */ +export function ebuserDeleteApi(ids) { + return request({ + url: `autogencode/ebuser/delete`, + method: 'POST', + data: ids + }) +} + + +/** + * ebuser列表 + * @param pram + */ +export function ebuserListApi(params) { + return request({ + url: `autogencode/ebuser/list`, + method: 'GET', + params + }) +} + diff --git a/admin/src/api/sysdept.js b/admin/src/api/sysdept.js index b6c5c7a..23b2939 100644 --- a/admin/src/api/sysdept.js +++ b/admin/src/api/sysdept.js @@ -10,6 +10,24 @@ export function deptTreeSelect(params) { }) } +// 查询部门树 +export function getDeptTreeByPm(params) { + return request({ + url: '/autogencode/sysdept/getDeptTreeByPm', + method: 'get', + params + }) +} + +// 查询当前用户的部门树(包含子部门) +export function getCurrentUserDeptTree(params) { + return request({ + url: '/autogencode/sysdept/getCurrentUserDeptTree', + method: 'get', + params + }) +} + /** * 新增sysdept * @param pram diff --git a/admin/src/components/DictTag/index.vue b/admin/src/components/DictTag/index.vue index 1f262cc..66b84af 100644 --- a/admin/src/components/DictTag/index.vue +++ b/admin/src/components/DictTag/index.vue @@ -54,7 +54,7 @@ export default { let findIndex = -1; try { findIndex = this.options.findIndex(val => { - return val && val.value !== undefined && val.value === item; + return val && val.value !== undefined && val.value == item; }); } catch (e) { console.error('Error in DictTag findIndex:', e); diff --git a/admin/src/views/eb/user/ebuser-add-and-update.vue b/admin/src/views/eb/user/ebuser-add-and-update.vue new file mode 100644 index 0000000..6e36b22 --- /dev/null +++ b/admin/src/views/eb/user/ebuser-add-and-update.vue @@ -0,0 +1,443 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + diff --git a/admin/src/views/eb/user/index.vue b/admin/src/views/eb/user/index.vue new file mode 100644 index 0000000..fb807b0 --- /dev/null +++ b/admin/src/views/eb/user/index.vue @@ -0,0 +1,453 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + 新增数据 + 批量删除 + + + + + + + + + + + + + + + + + + + + {{ scope.row.status ? '正常' : '禁止' }} + + + + + + + + + + + + + + + + + + + + + + + {{ '修改' }} + 删除 + + + + + + + + + + + + + diff --git a/admin/src/views/pm/pmowner/index.vue b/admin/src/views/pm/pmowner/index.vue index 7fe1606..5b484f1 100644 --- a/admin/src/views/pm/pmowner/index.vue +++ b/admin/src/views/pm/pmowner/index.vue @@ -5,12 +5,12 @@ + style="margin-bottom: 20px"/> + :filter-node-method="filterNode" ref="tree" node-key="deptId" default-expand-all highlight-current + @node-click="handleNodeClick"/> @@ -20,32 +20,51 @@ - + + + - + + + 查询 重置 新增数据 + @click="addOrUpdateHandle()">新增数据 + 批量删除 + :disabled="dataListSelections.length <= 0">批量删除 + + style="width: 100%;"> - + + + + @@ -68,23 +87,27 @@ + + + - + {{ '修改' }} 删除 + @click="deleteHandle(scope.row.id)" style="color: #f56c6c;">删除 + + :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" :total="totalPage" + layout="total, sizes, prev, pager, next, jumper"> - + @@ -96,12 +119,15 @@ import * as api from '@/api/pmowner.js' import * as deptApi from '@/api/sysdept.js' import * as houseApi from '@/api/pmhouse.js' import TenatList from '@/views/pm/tenant/index'; +import DictTag from '@/components/DictTag' export default { components: { TenatList, - AddOrUpdate + AddOrUpdate, + DictTag }, + dicts: ['owner_Type','owner_status'], data() { return { deptTreeOptions: [], @@ -129,7 +155,9 @@ export default { totalPage: 0, dataListLoading: false, dataListSelections: [], - addOrUpdateVisible: false + addOrUpdateVisible: false, + // 用于强制刷新TenatList组件的key + tenantListKey: Date.now() } }, watch: { @@ -168,7 +196,7 @@ export default { }) }, handleGetHouseList() { - houseApi.pmhouseListApi({ page: 1, limit: 9999 }).then(res => { + houseApi.pmhouseListApi({page: 1, limit: 9999}).then(res => { const houseList = res.list || [] houseList.forEach(house => { this.houseMap[house.id] = `${house.unitNo}单元 ${house.floorNo}层 ${house.houseNo}室` @@ -277,11 +305,18 @@ export default { }) }) }, + // 刷新数据列表(用于业主弹窗关闭后刷新业主列表和租户列表) + handleRefresh() { + // 更新tenantListKey的值,强制TenatList组件刷新 + this.tenantListKey = Date.now() + // 重新获取业主列表数据 + this.getDataList() + }, } } \ No newline at end of file +::v-deep .el-table__expanded-cell { + padding: 0 !important; +} + diff --git a/admin/src/views/pm/pmowner/pmowner-add-and-update.vue b/admin/src/views/pm/pmowner/pmowner-add-and-update.vue index bdcb120..538ceea 100644 --- a/admin/src/views/pm/pmowner/pmowner-add-and-update.vue +++ b/admin/src/views/pm/pmowner/pmowner-add-and-update.vue @@ -3,59 +3,113 @@ + :visible.sync="visible" + :append-to-body="true" + > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - 添加租户 - + + + + 添加租户 + + + @@ -65,7 +119,16 @@ - + + + + + + + + + + @@ -94,9 +157,11 @@ import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import TenantAddAndUpdate from './tenant-add-and-update.vue' + import DictTag from '@/components/DictTag' export default { - components: { Treeselect, TenantAddAndUpdate }, + components: { Treeselect, TenantAddAndUpdate, DictTag }, + dicts: ['tenant_type','owner_Type','owner_status','tenant_status'], data () { return { visible: false, 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 index 1323d74..d01cf45 100644 --- a/admin/src/views/pm/pmowner/rent-record-add-and-update.vue +++ b/admin/src/views/pm/pmowner/rent-record-add-and-update.vue @@ -4,14 +4,15 @@ :title="!dataForm.id ? '添加' : '修改'" :close-on-click-modal="false" :visible.sync="visible" - :z-index="2000"> + :append-to-body="true" + > - + - + @@ -23,7 +24,14 @@ - + + + @@ -45,6 +53,7 @@ default: 0 } }, + dicts: ['record_status'], data () { return { visible: false, diff --git a/admin/src/views/pm/pmowner/tenant-add-and-update.vue b/admin/src/views/pm/pmowner/tenant-add-and-update.vue index 480c91b..b1b20ad 100644 --- a/admin/src/views/pm/pmowner/tenant-add-and-update.vue +++ b/admin/src/views/pm/pmowner/tenant-add-and-update.vue @@ -1,17 +1,27 @@ + :title="!dataForm.id ? '添加' : '修改'" + :close-on-click-modal="false" + :visible.sync="visible" + :append-to-body="true" + + + > - + + + @@ -22,17 +32,24 @@ - - + + + + - - - 添加租赁记录 - + + + 添加租赁记录 + @@ -51,12 +68,19 @@ - + + + + + {{ '修改' }} - {{ '删除' }} + {{ + '删除' + }} + @@ -68,154 +92,214 @@ - +