From f2898da52587449fc195fc0a9542dce3830f9a01 Mon Sep 17 00:00:00 2001 From: Odboy Date: Sat, 17 Jan 2026 09:01:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(user):=20=E6=B7=BB=E5=8A=A0=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E7=94=A8=E6=88=B7=E5=90=8D=E5=88=97=E8=A1=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=94=A8=E6=88=B7=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在CuteUserSelectService中新增listMetadataByUsernames方法 - 为CuteUserSelectApi添加listMetadataByUsernames接口 - 在前端cute-user-select.js中新增listMetadataByUsernames请求方法 - 修改CuteSingleUserSelect组件支持初始化时根据用户名加载用户信息 - 修改CuteUserSelect组件移除dataSource属性并支持初始化加载 - 更新CuteBusinessDemo演示页面用户字段默认值为空数组 --- .../src/api/application/cute-user-select.js | 17 ++++++++++----- .../business/CuteSingleUserSelect.vue | 9 +++++++- .../components/business/CuteUserSelect.vue | 15 ++++++------- .../views/componentsDemo/CuteBusinessDemo.vue | 2 +- .../system/application/CuteUserSelectApi.java | 8 +++++++ .../service/CuteUserSelectService.java | 21 +++++++++++++++++++ 6 files changed, 56 insertions(+), 16 deletions(-) diff --git a/cutejava-front/src/api/application/cute-user-select.js b/cutejava-front/src/api/application/cute-user-select.js index 2f0effd7..ff1005de 100644 --- a/cutejava-front/src/api/application/cute-user-select.js +++ b/cutejava-front/src/api/application/cute-user-select.js @@ -1,15 +1,22 @@ import request from '@/utils/request' export function listMetadata(query) { - const params = { - blurry: query - } return request({ url: 'api/component/CuteUserSelect/listMetadata', method: 'post', - data: params + data: { + blurry: query + } }) } -export default { listMetadata } +export function listMetadataByUsernames(usernameList = []) { + return request({ + url: 'api/component/CuteUserSelect/listMetadataByUsernames', + method: 'post', + data: usernameList + }) +} + +export default { listMetadata, listMetadataByUsernames } diff --git a/cutejava-front/src/views/components/business/CuteSingleUserSelect.vue b/cutejava-front/src/views/components/business/CuteSingleUserSelect.vue index 0e125a55..a9dbf562 100644 --- a/cutejava-front/src/views/components/business/CuteSingleUserSelect.vue +++ b/cutejava-front/src/views/components/business/CuteSingleUserSelect.vue @@ -41,7 +41,7 @@ export default { }, data() { return { - user: this.value, + user: [], loading: false, options: [] } @@ -51,6 +51,13 @@ export default { this.user = newVal } }, + async mounted() { + const that = this + if (that.value && that.value.length > 0) { + that.options = await CuteUserSelectApi.listMetadataByUsernames(that.value) + that.users = that.value + } + }, methods: { remoteMethod(query) { if (query !== '') { diff --git a/cutejava-front/src/views/components/business/CuteUserSelect.vue b/cutejava-front/src/views/components/business/CuteUserSelect.vue index 79c10695..3a256fef 100644 --- a/cutejava-front/src/views/components/business/CuteUserSelect.vue +++ b/cutejava-front/src/views/components/business/CuteUserSelect.vue @@ -37,16 +37,11 @@ export default { type: Array, required: false, default: null - }, - dataSource: { - type: Array, - required: false, - default: null } }, data() { return { - users: this.value, + users: [], loading: false, options: [] } @@ -56,9 +51,11 @@ export default { this.users = newVal } }, - mounted() { - if (this.dataSource && this.dataSource.length > 0) { - this.options = this.dataSource + async mounted() { + const that = this + if (that.value && that.value.length > 0) { + that.options = await CuteUserSelectApi.listMetadataByUsernames(that.value) + that.users = that.value } }, methods: { diff --git a/cutejava-front/src/views/componentsDemo/CuteBusinessDemo.vue b/cutejava-front/src/views/componentsDemo/CuteBusinessDemo.vue index 2678ddb2..9fb00a94 100644 --- a/cutejava-front/src/views/componentsDemo/CuteBusinessDemo.vue +++ b/cutejava-front/src/views/componentsDemo/CuteBusinessDemo.vue @@ -65,7 +65,7 @@ export default { data() { return { form: { - user: null, + user: [], dept: null, productLine: null, productLinePro: null diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/CuteUserSelectApi.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/CuteUserSelectApi.java index a94f4f3b..21c5978e 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/CuteUserSelectApi.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/CuteUserSelectApi.java @@ -30,4 +30,12 @@ public class CuteUserSelectApi { List collect = cuteUserSelectService.listMetadata(args); return ResponseEntity.ok(collect); } + + @ApiOperation("根据用户名称集合查询用户基础数据") + @PostMapping(value = "/listMetadataByUsernames") + @PreAuthorize("@el.check()") + public ResponseEntity> listMetadataByUsernames(@RequestBody List usernameList) { + List collect = cuteUserSelectService.listMetadataByUsernames(usernameList); + return ResponseEntity.ok(collect); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/service/CuteUserSelectService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/service/CuteUserSelectService.java index 7c84cd35..34d67f81 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/service/CuteUserSelectService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/application/service/CuteUserSelectService.java @@ -1,5 +1,6 @@ package cn.odboy.system.application.service; +import cn.hutool.core.collection.CollUtil; import cn.odboy.system.application.model.CuteUserSelectVo; import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.request.SystemQueryUserArgs; @@ -8,7 +9,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Service public class CuteUserSelectService { @@ -44,4 +47,22 @@ public class CuteUserSelectService { return selectVo; }).getRecords(); } + + public List listMetadataByUsernames(List usernameList) { + if (CollUtil.isEmpty(usernameList)) { + return new ArrayList<>(); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(SystemUserTb::getUsername, SystemUserTb::getNickName, SystemUserTb::getDeptId, SystemUserTb::getEmail, SystemUserTb::getPhone); + wrapper.in(SystemUserTb::getUsername, usernameList); + return systemUserMapper.selectList(wrapper).stream().map(m -> { + CuteUserSelectVo selectVo = new CuteUserSelectVo(); + selectVo.setValue(m.getUsername()); + selectVo.setLabel(m.getNickName()); + selectVo.setDeptId(Long.toString(m.getDeptId())); + selectVo.setEmail(m.getEmail()); + selectVo.setPhone(m.getPhone()); + return selectVo; + }).collect(Collectors.toList()); + } }