From ba5374383bbf3ecabf6f50f7aac34916d9f745e0 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期六, 14 九月 2024 14:48:04 +0800 Subject: [PATCH] bug修改 --- src/views/onlineEducation/people/components/stuDialog.vue | 102 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 92 insertions(+), 10 deletions(-) diff --git a/src/views/onlineEducation/people/components/stuDialog.vue b/src/views/onlineEducation/people/components/stuDialog.vue index b27645e..8976689 100644 --- a/src/views/onlineEducation/people/components/stuDialog.vue +++ b/src/views/onlineEducation/people/components/stuDialog.vue @@ -22,7 +22,7 @@ </el-radio-group> </el-form-item> <el-form-item label="身份证号:" prop="idNo" v-if="state.title !== '修改密码'"> - <el-input v-model.trim="state.form.idNo" :disabled="disabled" placeholder="请输入身份证号" ></el-input> + <el-input v-model.trim="state.form.idNo" maxlength="18" :disabled="disabled" placeholder="请输入身份证号" ></el-input> </el-form-item> <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> @@ -32,6 +32,28 @@ </el-form-item> <el-form-item label="重复密码:" prop="confirmPassword" v-if="state.title == '新增' || state.title == '修改密码'"> <el-input v-model.trim="state.form.confirmPassword" type="password" show-password placeholder="请输入确认密码"></el-input> + </el-form-item> + <el-form-item label="所属部门账号:" prop="createBy" v-if="state.title !== '修改密码' && (currentUserType === 1 || currentUserType === 4)"> + <el-select + clearable + v-model="state.form.createBy" + filterable + remote + @change="selectValue" + reserve-keyword + placeholder="请输入部门账号名称" + remote-show-suffix + :remote-method="getDeptUserList" + :loading="loading" + style="width: 100%" + > + <el-option + v-for="item in state.deptUserList" + :key="item.id" + :label="item.name" + :value="item.name" + /> + </el-select> </el-form-item> <el-form-item label="工号:" prop="empno" v-if="state.title !== '修改密码'"> <el-input v-model.trim="state.form.empno" :disabled="disabled" placeholder="请输入工号" ></el-input> @@ -63,11 +85,13 @@ import {Base64} from "js-base64" import Cookies from "js-cookie"; import {addStudent, checkStuIdNo, checkStuPhone, editStudent} from "@/api/onlineEducation/student"; - +import {getCompany} from "@/api/onlineEducation/company"; +import {getUser} from "@/api/onlineEducation/user"; const emit = defineEmits(["getList"]); const dialogVisible = ref(false) const superRef = ref(null) const scrollRef = ref(null) + const equalToPassword = (rule, value, callback) => { @@ -194,17 +218,23 @@ empno: '', post: '', duty: '', - idNo: '' + idNo: '', + createId: null, + createBy: '', + userType: null }, formRules:{ - name: [{ required: true, message: '请输入公司、部门或者车间岗位名称', trigger: 'blur' }], + name: [{ required: true, message: '请输入姓名', trigger: 'blur' }], password: [{ required: true, validator: validatePwd, trigger: 'blur' }], confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }], phone: [{ required: true, validator: validateUserPhone, trigger: 'blur' }], idNo: [{ required: true, validator: validateIdNo, trigger: 'blur' }], + createBy: [{ required: true, message: '请输入所属部门名称', trigger: 'blur' }], + }, - isAdmin: false + isAdmin: false, + deptUserList: [] }) const startPhone = ref(''); @@ -215,10 +245,12 @@ }); +const currentUserType = ref(null) const disabled = ref(false); const openDialog = async (type, value) => { const userInfo = JSON.parse(Cookies.get('userInfo')) console.log("userInfo",userInfo) + currentUserType.value = userInfo.userType if(userInfo.userType === 0){ state.isAdmin = true; state.form.userType = 0; @@ -226,7 +258,13 @@ state.isAdmin = false; state.form.companyId = userInfo.companyId; state.form.companyName = userInfo.companyName; - state.form.userType = 1; + state.form.userType = userInfo.userType; + } + if(userInfo.userType === 1 || userInfo.userType === 4) { + await getDeptUserList("") + }else if(userInfo.userType === 2){ + state.form.createId = userInfo.id + state.form.createBy = userInfo.name } state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ; if(type === 'edit' || type === 'view') { @@ -235,7 +273,7 @@ } startPhone.value = value.phone startIdNo.value = value.idNo - state.form = value + state.form = JSON.parse(JSON.stringify(value)) state.form.companyName = value.company.name; console.log("ba",state.form) } @@ -260,8 +298,8 @@ ElMessage.warning(res.message) } }else if(state.title == '编辑'){ - const {id, name, phone, sex, companyId, empno, post, duty, idNo} = state.form - const data = {id, name, phone, sex, companyId, empno, post, duty, idNo} + const {id, name, phone, sex, companyId, empno, post, duty, idNo,createId,createBy} = state.form + const data = {id, name, phone, sex, companyId, empno, post, duty, idNo,createId,createBy} const res = await editStudent(data) if(res.code == 200){ ElMessage.success(res.message) @@ -297,7 +335,10 @@ empno: '', post: '', duty: '', - idNo: '' + idNo: '', + createId: null, + createBy: '', + userType: null } superRef.value.clearValidate(); superRef.value.resetFields() @@ -305,7 +346,48 @@ } +const selectValue = (val) => { + // state.form.parentId = null; + // state.form.parentName = null; + state.deptUserList.forEach(item => { + if(item.name === val){ + state.form.createId = item.id + } + }) +} +const loading = ref(false) +const getDeptUserList = async (val)=>{ + let param = {} + if(val != ""){ + param = { + name: val, + userType: 2, + companyId: state.form.companyId + } + }else { + param = { + pageNum: 1, + pageSize: 10, + userType: 2, + companyId: state.form.companyId + } + } + loading.value = true; + const res = await getUser(param) + if (res.code == 200) { + loading.value = false; + state.deptUserList = res.data.list.map(item => { + return { + ...item, + name: item.name + ' ('+ item.username +') ' + } + }) + + } else { + ElMessage.warning(res.message) + } +} -- Gitblit v1.9.2