From 4502510c1763590b3d90d9dcc74a99f8f371642f Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期五, 19 四月 2024 16:49:45 +0800 Subject: [PATCH] 基本信息、修改密码 --- src/layout/components/Register/index.vue | 4 + src/api/login.js | 5 + src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue | 6 + src/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue | 55 +++++++++++------- src/store/modules/user.js | 3 src/layout/components/Navbar.vue | 55 ++++++++++++++++-- src/views/components/loginForm.vue | 10 ++ src/views/safetyReview/projectManage/components/signConfirm.vue | 2 8 files changed, 104 insertions(+), 36 deletions(-) diff --git a/src/api/login.js b/src/api/login.js index b227491..eb9601a 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,12 +1,13 @@ import request from '@/utils/request' // 登录方法 -export function login(username, password, code, uuid) { +export function login(username, password, code, uuid,identity) { const data = { username, password, code, - uuid + uuid, + identity } return request({ url: '/system/account/login', diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 43e4b3f..2cb8830 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -34,9 +34,12 @@ <!-- <router-link to="/user/profile">--> <!-- <el-dropdown-item>个人中心</el-dropdown-item>--> <!-- </router-link>--> -<!-- <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">--> -<!-- <span>布局设置</span>--> -<!-- </el-dropdown-item>--> + <el-dropdown-item command="info"> + <span>基本信息</span> + </el-dropdown-item> + <el-dropdown-item command="password"> + <span>修改密码</span> + </el-dropdown-item> <el-dropdown-item divided command="logout"> <span>退出登录</span> </el-dropdown-item> @@ -45,6 +48,8 @@ </el-dropdown> </div> </div> + <review-dialog ref="reviewRef" ></review-dialog> + <supervise-dialog ref="superRef"></supervise-dialog> </div> </template> @@ -61,29 +66,67 @@ import useAppStore from '@/store/modules/app' import useUserStore from '@/store/modules/user' import useSettingsStore from '@/store/modules/settings' -import {removeToken} from "@/utils/auth"; +import {getToken, removeToken} from "@/utils/auth"; +import {onMounted, ref} from "vue"; +import Cookies from "js-cookie"; +import reviewDialog from "@/views/safetyReview/institution/components/viewInstitution.vue" +import superviseDialog from "@/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue" const appStore = useAppStore() const userStore = useUserStore() const settingsStore = useSettingsStore() +const reviewRef = ref(); +const superRef = ref(); +const userInfo = ref(); +onMounted(()=>{ + if(getToken()){ + userInfo.value = JSON.parse(Cookies.get('userInfo')) + console.log("userInfo",userInfo.value ) + + } +}) function toggleSideBar() { appStore.toggleSideBar() } function handleCommand(command) { switch (command) { - case "setLayout": - setLayout(); + case "info": + getInfo(); break; case "logout": logout(); break; + case "password": + editPsd(); + break; default: break; } } +function getInfo() { + console.log("getInfo") + //机构用户 + if(userInfo.value.identity === 1){ + const obj = { + agencyId: userInfo.value.agentId + } + reviewRef.value.openDialog(obj,'view') + } + //监管用户 + else if (userInfo.value.identity === 0) { + const obj = { + id: userInfo.value.id + } + superRef.value.openDialog('view', obj); + } +} +function editPsd() { + superRef.value.openDialog('pwd', userInfo.value); +} + function logout() { ElMessageBox.confirm('确定注销并退出系统吗?', '提示', { confirmButtonText: '确定', diff --git a/src/layout/components/Register/index.vue b/src/layout/components/Register/index.vue index 1b29454..ddd287b 100644 --- a/src/layout/components/Register/index.vue +++ b/src/layout/components/Register/index.vue @@ -409,11 +409,13 @@ let param = {} if(state.title=='新增/注册') { param = { - phone:value + phone:value, + identity: 1 } }else if(state.title=='编辑'){ param = { phone:value, + identity: 1, id: state.registerForm.id } } diff --git a/src/store/modules/user.js b/src/store/modules/user.js index d1d60e7..201f2d2 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -20,8 +20,9 @@ const password = userInfo.password const code = userInfo.code const uuid = userInfo.uuid + const identity = userInfo.identity return new Promise((resolve, reject) => { - login(username, password, code, uuid).then(res => { + login(username, password, code, uuid, identity).then(res => { setToken(res.data.token) Cookies.set('userInfo',JSON.stringify(res.data)) this.token = res.data.token diff --git a/src/views/components/loginForm.vue b/src/views/components/loginForm.vue index ee9ede4..57b41b7 100644 --- a/src/views/components/loginForm.vue +++ b/src/views/components/loginForm.vue @@ -44,6 +44,10 @@ <img :src="codeUrl" @click="getCode" class="login-code-img"/> </div> </el-form-item> + <el-radio-group v-model="loginForm.role" class="mb5"> + <el-radio :label="0" size="large">监管部门</el-radio> + <el-radio :label="1" size="large">机构管理员</el-radio> + </el-radio-group> <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 25px"> <!-- <el-checkbox v-model="loginForm.rememberMe">记住密码</el-checkbox>--> <el-button @@ -85,7 +89,8 @@ username: "", password: "", code: "", - uuid: "" + uuid: "", + role: 0 }); const loginRules = { @@ -138,7 +143,8 @@ username: loginForm.value.username, password: Base64.encode(loginForm.value.password), code: loginForm.value.code, - uuid: loginForm.value.uuid + uuid: loginForm.value.uuid, + identity: loginForm.value.role } userStore.login(param).then(() => { // const query = route.query; diff --git a/src/views/safetyReview/projectManage/components/signConfirm.vue b/src/views/safetyReview/projectManage/components/signConfirm.vue index b5887a1..9668e5d 100644 --- a/src/views/safetyReview/projectManage/components/signConfirm.vue +++ b/src/views/safetyReview/projectManage/components/signConfirm.vue @@ -131,7 +131,7 @@ state.tableData = res.data.map(item => { return { ...item, - facePic: item.faceRecord ? [import.meta.env.VITE_APP_BASE_API + '/' + item.faceRecord.facePath ] : [], + facePic: item.faceRecord.facePath ? [import.meta.env.VITE_APP_BASE_API + '/' + item.faceRecord.facePath ] : [], signPic: item.signPath ? [import.meta.env.VITE_APP_BASE_API + '/' + item.signPath] : [], commitPic: item.insurancePath ? [import.meta.env.VITE_APP_BASE_API + '/' + item.insurancePath] : [], } diff --git a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue index 972aeaf..7600bca 100644 --- a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue +++ b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue @@ -254,12 +254,14 @@ let param = {} if(state.title=='新增') { param = { - phone:value + phone:value, + identity: 2 } }else if(state.title=='编辑'){ param = { phone:value, - id: state.form.id + id: state.form.id, + identity: 2 } } checkPhone(param).then((res)=>{ diff --git a/src/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue b/src/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue index 4d8e5b7..e3a0696 100644 --- a/src/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue +++ b/src/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue @@ -7,11 +7,11 @@ :before-close="handleClose" > <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="110px" > - <el-form-item label="姓名:" prop="name" v-if="state.title !== '修改密码'"> - <el-input v-model.trim="state.form.name" ></el-input> + <el-form-item label="姓名:" prop="name" v-if="state.title !== '修改密码'" > + <el-input v-model.trim="state.form.name" :disabled="disabled" ></el-input> </el-form-item> <el-form-item label="用户名:" prop="username" v-if="state.title !== '修改密码'"> - <el-input v-model.trim="state.form.username" :disabled="state.title =='编辑'" ></el-input> + <el-input v-model.trim="state.form.username" :disabled="state.title =='编辑' || state.title =='查看'" ></el-input> </el-form-item> <el-form-item label="密码:" prop="password" v-if="state.title == '新增' || state.title == '修改密码'"> <el-input v-model.trim="state.form.password" type="password" show-password placeholder="请输入密码"></el-input> @@ -19,17 +19,17 @@ <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="phone" v-if="state.title !== '修改密码'"> - <el-input v-model.trim="state.form.phone" :maxlength="11" ></el-input> + <el-form-item label="手机号:" prop="phone" v-if="state.title !== '修改密码'" > + <el-input v-model.trim="state.form.phone" :maxlength="11" :disabled="disabled"></el-input> </el-form-item> <el-form-item label="账号类型:" v-if="state.title !== '修改密码'"> - <el-radio-group v-model="state.form.userType" > + <el-radio-group v-model="state.form.userType" :disabled="disabled"> <el-radio :label="0">工作人员</el-radio> <el-radio :label="1">领导</el-radio> </el-radio-group> </el-form-item> <el-form-item label="管辖地区:" prop="manageRegion" v-if="state.title !== '修改密码'"> - <el-select v-model="state.form.manageRegion" class="m-2" placeholder="请选择" style="width:100%"> + <el-select v-model="state.form.manageRegion" class="m-2" placeholder="请选择" style="width:100%" :disabled="disabled"> <el-option v-for="item in state.areaList" :key="item.id" @@ -39,7 +39,7 @@ </el-select> </el-form-item> </el-form> - <template #footer > + <template #footer v-if="state.title !='查看'"> <span class="dialog-footer"> <el-button @click="handleClose" size="default">取 消</el-button> <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button> @@ -55,9 +55,10 @@ import {verifyPhone, verifyPwd, verifyUsername} from "../../../../../utils/validate"; import { checkUserName, checkPhone } from "@/api/login" import { getRegionTree } from "@/api/area" -import { addMonitor, editMonitor } from "@/api/sysUsers" +import {addMonitor, editMonitor, getUserById} from "@/api/sysUsers" import {Base64} from "js-base64" import {resetUserPwd} from "../../../../../api/sysUsers"; +import {getInstitutionDetail} from "@/api/backManage/insitution"; const emit = defineEmits(["getList"]); const dialogVisible = ref(false) @@ -81,12 +82,14 @@ let param = {} if(state.title=='新增') { param = { - phone:value + phone:value, + identity: 0 } }else if(state.title=='编辑'){ param = { phone:value, - id: state.form.id + id: state.form.id, + identity: 0 } } checkPhone(param).then((res)=>{ @@ -165,18 +168,28 @@ }) -const openDialog = (type, value) => { +const disabled = ref(false); +const openDialog = async (type, value) => { getArea() state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ; - if(type === 'edit') { - nextTick(() => { - for(let i in state.form){ - if(validKey(i,value)){ - state.form[i] = value[i] - } - } - }) - + if(type === 'edit' || type === 'view') { + if( type === 'view'){ + disabled.value = true; + } + const param = { + userId: value.id + } + const res = await getUserById(param); + if(res.code === 200){ + state.form = res.data + } + // nextTick(() => { + // for(let i in state.form){ + // if(validKey(i,value)){ + // state.form[i] = value[i] + // } + // } + // }) } if(type == 'pwd'){ state.form.id = value.id -- Gitblit v1.9.2