From 246f7b6fd81cf2ba620b8f9bf7cf24b61d7cf521 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 17 七月 2024 16:38:54 +0800 Subject: [PATCH] bug修改 --- src/views/onlineEducation/systemManage/user/components/userDialog.vue | 161 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 113 insertions(+), 48 deletions(-) diff --git a/src/views/onlineEducation/systemManage/user/components/userDialog.vue b/src/views/onlineEducation/systemManage/user/components/userDialog.vue index aa3512e..ec226fe 100644 --- a/src/views/onlineEducation/systemManage/user/components/userDialog.vue +++ b/src/views/onlineEducation/systemManage/user/components/userDialog.vue @@ -5,6 +5,8 @@ :title="state.title" width="700px" :before-close="handleClose" + :close-on-press-escape="false" + :close-on-click-modal="false" > <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" > <el-form-item label="用户名:" prop="username" v-if="state.title !== '修改密码'"> @@ -28,20 +30,30 @@ <el-form-item label="手机号:" prop="phone" v-if="state.title !== '修改密码'" > <el-input v-model.trim="state.form.phone" :maxlength="11" :disabled="disabled" placeholder="请输入手机号"></el-input> </el-form-item> - <el-form-item label="用户类型:" v-if="state.title !== '修改密码'"> - <el-radio-group v-model="state.form.userType" :disabled="disabled" @change="changeType"> - <el-radio :label="0" v-if="state.isAdmin">管理员</el-radio> - <el-radio :label="1" v-if="state.isAdmin">企业级</el-radio> - <el-radio :label="2" v-if="!state.isAdmin">部门级</el-radio> + <el-form-item label="用户类型:" v-if="state.title !== '修改密码'" prop="userType"> + <el-radio-group v-model="state.form.userType" :disabled="disabled" @change="changeType" v-if="state.title == '新增'"> + <el-radio :label="0" v-if="state.currentUserType == 0">管理员</el-radio> + <el-radio :label="1" v-if="state.currentUserType == 0 ">企业级</el-radio> + <el-radio :label="2" v-if="state.currentUserType == 1 ">部门级</el-radio> <el-radio :label="3" v-if="!state.isAdmin">车间(岗位)级</el-radio> - <el-radio :label="4" v-if="state.isAdmin">其他</el-radio> + <el-radio :label="4" v-if="state.currentUserType == 0">其他</el-radio> </el-radio-group> + <span v-else-if="state.title == '查看'">{{state.currentUserType === 0 ? '管理员' : state.currentUserType === 1 ? '企业级' : state.currentUserType === 2 ? '部门级' : state.currentUserType === 3 ? '车间级' :'其他'}}</span> + <span v-else-if="state.title == '编辑'">{{state.form.userType === 0 ? '管理员' : state.form.userType === 1 ? '企业级' : state.form.userType === 2 ? '部门级' : state.form.userType === 3 ? '车间级' :'其他'}}</span> + <!-- <el-radio-group v-model="state.form.userType" :disabled="disabled" @change="changeType" v-else-if="state.title == '编辑'">--> +<!-- <el-radio :label="0" v-if="state.currentUserType == 0">管理员</el-radio>--> +<!-- <el-radio :label="1" >企业级</el-radio>--> +<!-- <el-radio :label="2" >部门级</el-radio>--> +<!-- <el-radio :label="3" >车间(岗位)级</el-radio>--> +<!-- <el-radio :label="4" >其他</el-radio>--> +<!-- </el-radio-group>--> </el-form-item> - <el-form-item label="选择上级企业:" prop="companyName" v-if="state.title !== '修改密码' && state.form.userType !== 0"> + <el-form-item label="所属企业:" prop="companyName" v-if="state.title !== '修改密码' && showCompany"> <el-select v-if="state.isAdmin" v-model="state.form.companyName" filterable + :disabled="disabled || state.title =='编辑'" remote @change="selectValue" reserve-keyword @@ -58,6 +70,7 @@ :value="item.name" /> </el-select> + <el-input v-else disabled style="width: 45%" v-model="state.form.companyName"></el-input> <!-- <el-select--> <!-- v-if="state.isAdmin"--> <!-- v-model="state.form.companyName"--> @@ -75,21 +88,23 @@ <!-- :value="item.name"--> <!-- />--> <!-- </el-select>--> - <el-input v-else disabled style="width: 45%" v-model="state.form.companyName"></el-input> - <scorllSelect - :disabled="disabled" - ref="scrollRef" - v-if="UisMounted && (state.form.userType === 2 || state.form.userType === 3)" - v-model="state.form.parentName" - @getval = "getSelectUser" - placeholder="请选择" - clearable - style="width: 45%;margin-left: 10px" - filterable - remote - searchKey="name" - :methods="getUser"> - </scorllSelect> + + + </el-form-item> + <el-form-item label="所属上级账号:" prop="companyName" v-if="showChild"> + <scorllSelect + :disabled="disabled || state.title =='编辑'" + ref="scrollRef" + v-model="state.form.parentName" + @getval = "getSelectUser" + placeholder="请选择" + clearable + style="width: 45%;" + filterable + remote + searchKey="name" + :methods="getUser"> + </scorllSelect> </el-form-item> </el-form> <template #footer v-if="state.title !='查看'"> @@ -197,7 +212,7 @@ password: '', confirmPassword: '', username: '', - userType: 0, + userType: null, sex: 0, companyId: null, parentId: null @@ -209,6 +224,7 @@ password: [{ required: true, validator: validatePwd, trigger: 'blur' }], confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }], phone: [{ required: true, validator: validateUserPhone, trigger: 'blur' }], + userType: [{ required: true, message: '请选择用户类型', trigger: 'blur' }], }, companyList: [], userList: [ @@ -221,7 +237,8 @@ cloading:false, totlePage: 0, userParam: {}, - isAdmin: false + isAdmin: false, + currentUserType: null }) const UisMounted = ref(false); @@ -229,19 +246,20 @@ UisMounted.value = true; }); - +const showCompany = ref(false) +const showChild = ref(false) const disabled = ref(false); +const userInfo = ref() const openDialog = async (type, value) => { - const userInfo = JSON.parse(Cookies.get('userInfo')) - console.log("userInfo",userInfo) - if(userInfo.userType === 0){ + userInfo.value = JSON.parse(Cookies.get('userInfo')) + console.log("userInfo",userInfo.value) + state.currentUserType = userInfo.value.userType + if(state.currentUserType === 0){ state.isAdmin = true; - state.form.userType = 0; }else { state.isAdmin = false; - state.form.companyId = userInfo.companyId; - state.form.companyName = userInfo.companyName; - state.form.userType = 1; + state.form.companyId = userInfo.value.companyId; + state.form.companyName = userInfo.value.companyName; } if(type !== 'view' && type !== 'pwd'){ @@ -258,7 +276,14 @@ const res = await getUserById(value.id); if(res.code === 200){ state.form = res.data - if(res.data.userType === 2|| res.data.userType === 3){ + if(res.data.userType === 3){ + showCompany.value = true; + showChild.value = true + }else if(res.data.userType === 2 || res.data.userType === 1 || res.data.userType === 4){ + showCompany.value = true; + showChild.value = false; + } + if(res.data.userType === 3){ if(!res.data.parentId){ state.form.parentId = '' state.form.parentName = '无上级账号' @@ -279,6 +304,7 @@ const finshed = ref(false) const loading = ref(false) + const getCompanyList = async (val)=>{ if(val != ""){ loading.value = true; @@ -374,19 +400,63 @@ } const changeType = () => { state.companyList = []; - if(state.isAdmin){ - state.form.companyId = null; - state.form.companyName = ''; - } state.form.parentId = null; state.form.parentName = ''; - if(state.form.userType === 2 || state.form.userType === 3 ){ + state.form.companyId = null; + state.form.companyName = ''; + //当前是管理员级用户 + if(state.currentUserType === 0){ + if(state.form.userType === 0){ + showCompany.value = false; + showChild.value = false; + }else { + showCompany.value = true; + showChild.value = false; + } + } + //当前是企业级/其他用户选择部门 + if((state.currentUserType === 1 && state.form.userType === 2) || (state.currentUserType === 4 && state.form.userType === 2)){ + state.form.parentId = userInfo.value.id; + state.form.companyName = userInfo.value.companyName + state.form.companyId = userInfo.value.companyId; + showChild.value = false; + showCompany.value = true; + + } //当前是企业级/其他用户选择车间 + else if((state.currentUserType === 1 && state.form.userType === 3) || (state.currentUserType === 4 && state.form.userType === 3)){ + state.form.companyName = userInfo.value.companyName + state.form.companyId = userInfo.value.companyId; + showCompany.value = true; + showChild.value = true; const param = { - userType: state.form.userType-1, + userType: 2, companyId: state.form.companyId, } - scrollRef.value.getList(param,'change'); + nextTick(() => { + scrollRef.value.getList(param,'change'); + }) } + //当前是部门级选择车间 + if((state.currentUserType === 2 && state.form.userType === 3)){ + state.form.parentId = userInfo.value.id; + state.form.companyName = userInfo.value.companyName + state.form.companyId = userInfo.value.companyId; + showCompany.value = true; + showChild.value = false; + } + // if(state.isAdmin){ + // state.form.companyId = null; + // state.form.companyName = ''; + // } + // state.form.parentId = null; + // state.form.parentName = ''; + // if(state.form.userType === 2 || state.form.userType === 3 ){ + // const param = { + // userType: state.form.userType-1, + // companyId: state.form.companyId, + // } + // scrollRef.value.getList(param,'change'); + // } } const handleClose = () => { @@ -397,11 +467,13 @@ password: '', confirmPassword: '', username: '', - userType: 0, + userType: null, sex: 0, companyId: null, parentId: null } + showCompany.value = false; + showChild.value = false; state.userList = []; state.companyList = []; state.pageNum = 1; @@ -427,13 +499,6 @@ state.companyList.forEach(item => { if(item.name === val){ state.form.companyId = item.id - if(state.form.userType === 2 || state.form.userType === 3 ){ - const param = { - userType: state.form.userType-1, - companyId: state.form.companyId, - } - scrollRef.value.getList(param,'change'); - } } }) } -- Gitblit v1.9.2