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