pull/2/head
siontion 9 months ago
commit 766a5d97ba

@ -25,6 +25,9 @@ public class UserPageReqVO extends PageParam {
@Schema(description = "昵称,模糊匹配", example = "mes")
private String nickname;
@Schema(description = "用户账号或昵称", example = "mes")
private String userNickName;
@Schema(description = "手机号码,模糊匹配", example = "mes")
private String mobile;

@ -6,6 +6,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.module.system.controller.admin.user.vo.user.UserPageReqVO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.util.StringUtils;
import java.util.Collection;
import java.util.List;
@ -26,14 +27,18 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
}
default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) {
return selectPage(reqVO, new LambdaQueryWrapperX<AdminUserDO>()
LambdaQueryWrapperX<AdminUserDO> query = new LambdaQueryWrapperX<AdminUserDO>()
.likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername())
.likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname())
.likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile())
.eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
.betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())
.inIfPresent(AdminUserDO::getDeptId, deptIds)
.orderByDesc(AdminUserDO::getId));
.orderByDesc(AdminUserDO::getId);
if(!StringUtils.isEmpty(reqVO.getUserNickName())){
query.like(AdminUserDO::getUsername, reqVO.getUserNickName()).or().like(AdminUserDO::getNickname, reqVO.getUserNickName());
}
return selectPage(reqVO, query);
}
default List<AdminUserDO> selectListByNickname(String nickname) {

@ -4,6 +4,7 @@ export interface UserVO {
id: number
username: string
nickname: string
userNickName:string
deptId: number
postIds: string[]
email: string

@ -244,8 +244,14 @@
background-color: transparent;
border: none;
}
.sizestylenone{
.sizestylenone {
background-color: transparent;
border: none;
color: var(--el-table-text-color);
}
.fou {
background-color: #f7fbfd;
border: 1px solid #d4d6e3;
color: #77838C;
}

@ -34,23 +34,7 @@
</el-select>
</el-form-item>
<el-form-item label="负责人" prop="leaderUserId">
<el-select v-model="formData.leaderUserId"
placeholder="请输入负责人"
:remote-method="remoteUserSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="userSelectLoading"
>
<el-option
v-for="item in userSelectList"
:key="item.id"
:label="item.username + ' ' + item.nickname"
:value="item.id"
/>
</el-select>
<UserSelect v-model="formData.leaderUserId" :leaderUserId="formData.leaderUserId" @update:newValue="handleSelectedUser" />
</el-form-item>
<el-form-item label="班组描述" prop="description">
<el-input type="textarea" v-model="formData.description" height="150px" show-word-limit maxlength="200" />
@ -79,7 +63,7 @@ import * as UserApi from "@/api/system/user";
import * as WorkshopApi from "@/api/heli/workshop";
import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
import {getWorkshopPage} from "@/api/heli/workshop";
import UserSelect from '../hlvuestyle/userSelect.vue'
const { t } = useI18n() //
const message = useMessage() //
@ -219,4 +203,9 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
const handleSelectedUser = (newValue: any) => {
// console.log(':', newValue)
formData.value.leaderUserId = newValue.id
}
</script>

@ -24,7 +24,7 @@
/>
</el-form-item>
<el-form-item label="负责人" prop="leaderUserId">
<UserSelect v-model="formData.leaderUserId" :leaderUserId="formData.leaderUserId" @update:newValue="handleSelectedUser" />
<UserSelect v-model="formData.leaderUserId" @update:newValue="handleSelectedUser" />
</el-form-item>
<!-- <el-form-item label="联系电话" prop="phone">
<el-input v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" />

@ -2,7 +2,7 @@
<!-- 负责人选择 -->
<el-select
v-model="valueName"
placeholder="请输入负责人"
placeholder="请选择相关人员"
:remote-method="remoteMethod"
remote-show-suffix
remote
@ -11,6 +11,7 @@
filterable
:loading="userSelectLoading"
@change="onSelectChange"
@visible-change="onVisibleChange"
>
<el-option
v-for="item in userSelectList"
@ -25,13 +26,8 @@
import { ref, onMounted, toRefs, computed } from 'vue'
import * as UserApi from '@/api/system/user'
interface UserVO {
id: number
username: string
nickname: string
}
const props = defineProps({
leaderUserId: {
modelValue: {
type: [Number, String],
required: true // true
}
@ -41,7 +37,8 @@ const userParams = {
pageSize: 10,
status: undefined, //
username: undefined,
nickname: undefined
nickname: undefined,
userNickName: undefined
}
const valueName: any = ref() //
const valueNameObject: any = ref() //
@ -50,27 +47,30 @@ const emit = defineEmits(['update:newValue'])
const userList = ref<UserApi.UserVO[]>([]) //
const userSelectList = ref<UserApi.UserVO[]>([])
const userSelectLoading = ref(false)
const leaderUserId = toRefs(props).leaderUserId // props leaderUserId
const propsmodelValue = toRefs(props).modelValue // props modelValue
const initialValue: any = ref(null) // ID
const gitlist = async () => {
const data = await UserApi.getUserPage(userParams)
userList.value = data.list
//
if (leaderUserId.value) {
valueName.value = leaderUserId.value
if (propsmodelValue.value) {
valueName.value = propsmodelValue.value
const initialUser = await UserApi.getUser(valueName.value)
// userList
let foundInitialUserInList = false
for (const user of userList.value) {
if (user.id === initialUser.id) {
userSelectList.value = []
userList.value = []
foundInitialUserInList = true
break
}
}
//
if (!foundInitialUserInList && !userSelectList.value.length) {
userSelectList.value = []
userList.value = []
userList.value.unshift(initialUser)
}
@ -81,31 +81,11 @@ const gitlist = async () => {
const remoteMethod = async (query: any) => {
userSelectLoading.value = true
userSelectList.value = []
try {
if (query) {
// username
userParams.username = query
const dataByUsername = await UserApi.getUserPage(userParams)
// username
let tempUserList = [...dataByUsername.list]
// nickname nickname username
userParams.username = undefined
userParams.nickname = query
const dataByNickname = await UserApi.getUserPage(userParams)
// nickname
tempUserList = [
...tempUserList,
...dataByNickname.list.filter(
(item) => !tempUserList.some((selectItem) => selectItem.id === item.id)
)
]
//
userSelectList.value = tempUserList
userParams.userNickName = query
const data = await UserApi.getUserPage(userParams)
userSelectList.value = data.list
} else {
//
const data = await UserApi.getUserPage({ ...userParams, pageNo: 1 })
@ -127,6 +107,15 @@ onMounted(async () => {
}
})
const onVisibleChange = (isVisible: boolean) => {
if (!isVisible) {
//
userParams.userNickName = undefined
userList.value = []
userSelectList.value = []
}
}
const onSelectChange = (newValue: any) => {
valueNameObject.value = userList.value.find((user) => user.id === newValue) //
emit('update:newValue', valueNameObject.value)

@ -14,27 +14,11 @@
<el-input v-model="formData.whName" placeholder="请输入仓库名称" class="!w-500px" />
</el-form-item>
<el-form-item label="联系人" prop="contact">
<!-- <el-input v-model="formData.contact" placeholder="请输入联系人" class="!w-500px" /> -->
<el-select
<UserSelect class="!w-500px"
v-model="formData.contact"
placeholder="请输入联系人"
:remote-method="remoteUserSearch"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="userSelectLoading"
class="!w-500px"
@change="handleContact"
>
<el-option
v-for="item in userSelectList"
:key="item.id"
:label="item.username + ' ' + item.nickname"
:value="item.id"
:leaderUserId="formData.contact"
@update:newValue="handleSelectedUser"
/>
</el-select>
</el-form-item>
<el-form-item label="联系电话" prop="telephone">
<el-input v-model="formData.telephone" placeholder="请输入联系电话" class="!w-500px" />
@ -62,7 +46,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import * as WarehouseApi from '@/api/heli/warehouse'
import * as UserApi from '@/api/system/user'
import { fromPairs } from 'lodash-es'
import UserSelect from '../hlvuestyle/userSelect.vue'
const { t } = useI18n() //
const message = useMessage() //
@ -179,4 +163,9 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
const handleSelectedUser = (newValue: any) => {
// console.log(':', newValue)
formData.value.contact = newValue.id
}
</script>

@ -25,7 +25,12 @@
/>
</el-form-item>
<el-form-item label="负责人" prop="leaderUserId">
<el-select v-model="formData.leaderUserId"
<UserSelect
v-model="formData.leaderUserId"
:leaderUserId="formData.leaderUserId"
@update:newValue="handleSelectedUser"
/>
<!-- <el-select v-model="formData.leaderUserId"
placeholder="请输入负责人"
:remote-method="remoteUserSearch"
remote-show-suffix
@ -41,7 +46,7 @@
:label="item.username + ' ' + item.nickname"
:value="item.id"
/>
</el-select>
</el-select> -->
</el-form-item>
<el-form-item label="描述信息" prop="description">
<el-input type="textarea" v-model="formData.description" height="150px" show-word-limit maxlength="200"/>
@ -70,7 +75,7 @@ import * as WorkshopApi from '@/api/heli/workshop'
import {defaultProps, handleTree} from "@/utils/tree";
import * as DeptApi from '@/api/system/dept'
import * as UserApi from "@/api/system/user";
import UserSelect from '../hlvuestyle/userSelect.vue'
const { t } = useI18n() //
const message = useMessage() //
@ -179,4 +184,9 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
const handleSelectedUser = (newValue: any) => {
// console.log(':', newValue)
formData.value.leaderUserId = newValue.id
}
</script>

Loading…
Cancel
Save