From 1d2cf5560b9b757eb1405970d89d6609058863cf Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 05 六月 2024 09:59:55 +0800
Subject: [PATCH] bug修改
---
src/layout/components/Register/index.vue | 28 ++++--
src/utils/request.js | 2
src/layout/components/Sidebar/menu.js | 7 +
src/store/modules/user.js | 8 +
src/layout/components/Navbar.vue | 66 +++++++++++++++-
src/views/error/noMenu.vue | 63 +++++++++++++++
src/views/components/loginForm.vue | 16 +++
src/views/safetyReview/projectManage/components/expertsList.vue | 18 +++-
src/router/index.js | 13 +++
9 files changed, 194 insertions(+), 27 deletions(-)
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 2cb8830..2f8c19a 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -49,12 +49,13 @@
</div>
</div>
<review-dialog ref="reviewRef" ></review-dialog>
+ <register ref="regRef" @getList="getList" />
<supervise-dialog ref="superRef"></supervise-dialog>
</div>
</template>
<script setup>
-import { ElMessageBox } from 'element-plus'
+import {ElMessage, ElMessageBox} from 'element-plus'
import Breadcrumb from '@/components/Breadcrumb'
import TopNav from '@/components/TopNav'
import Hamburger from '@/components/Hamburger'
@@ -71,21 +72,50 @@
import Cookies from "js-cookie";
import reviewDialog from "@/views/safetyReview/institution/components/viewInstitution.vue"
import superviseDialog from "@/views/safetyReview/userManage/superviseUsers/components/superviseDialog.vue"
+import {Register} from "@/layout/components";
+import {getUserById} from "@/api/sysUsers";
+import menu from "@/layout/components/Sidebar/menu";
const appStore = useAppStore()
const userStore = useUserStore()
const settingsStore = useSettingsStore()
const reviewRef = ref();
+const regRef = ref(null)
const superRef = ref();
const userInfo = ref();
onMounted(()=>{
if(getToken()){
userInfo.value = JSON.parse(Cookies.get('userInfo'))
console.log("userInfo",userInfo.value )
-
}
+ getState();
})
+const getState = async () => {
+ console.log('navbar')
+ const param = {
+ userId: userInfo.value.id
+ }
+ const res = await getUserById(param)
+ if(res.code == 200){
+ userInfo.value.state = res.data.state;
+ // if(userInfo.value.state===2){
+ // sidebarRouters.value = menu.agencyMenu
+ // Cookies.set('routers',JSON.stringify(sidebarRouters.value))
+ // location.href = '/project';
+ // }
+ // else {
+ // location.href = '/noMenu';
+ // }
+
+
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.message
+ })
+ }
+}
function toggleSideBar() {
appStore.toggleSideBar()
}
@@ -107,13 +137,24 @@
}
function getInfo() {
- console.log("getInfo")
+ console.log("getInfo",userInfo.value)
//机构用户
if(userInfo.value.identity === 1){
- const obj = {
- agencyId: userInfo.value.agentId
+ //审核驳回(可修改)
+ if(userInfo.value.state === 3){
+ const obj = {
+ id: userInfo.value.id,
+ username: userInfo.value.username,
+ agencyId: userInfo.value.agentId
+ }
+ regRef.value.openDialog('reject', obj);
+ }else{
+ //审核通过、未审核状态(不可修改)
+ const obj = {
+ agencyId: userInfo.value.agentId
+ }
+ reviewRef.value.openDialog(obj,'view')
}
- reviewRef.value.openDialog(obj,'view')
}
//监管用户
else if (userInfo.value.identity === 0) {
@@ -126,6 +167,19 @@
function editPsd() {
superRef.value.openDialog('pwd', userInfo.value);
}
+const sidebarRouters = ref([])
+
+const getList = () => {
+ // getState()
+ location.href = '/noMenu';
+ // if(userInfo.value.state===2){
+ // sidebarRouters.value = menu.agencyMenu
+ // Cookies.set('routers',JSON.stringify(sidebarRouters.value))
+ // location.href = '/project';
+ // }else {
+ // location.href = '/noMenu';
+ // }
+}
function logout() {
ElMessageBox.confirm('确定注销并退出系统吗?', '提示', {
diff --git a/src/layout/components/Register/index.vue b/src/layout/components/Register/index.vue
index ddd287b..de6d5b9 100644
--- a/src/layout/components/Register/index.vue
+++ b/src/layout/components/Register/index.vue
@@ -205,8 +205,8 @@
</el-col>
</el-row>
<el-row :gutter="30">
- <el-col :span="8">
- <el-form-item prop="agency.reportPath" label="加盖公章的《机构信息上报表》">
+ <el-col :span="24">
+ <el-form-item prop="agency.reportPath" label="加盖公章的《机构信息上报表》(请上传加盖公章的营业执照)">
<!-- <el-upload-->
<!-- v-model:file-list="state.fileList"-->
<!-- class="upload-demo"-->
@@ -319,6 +319,7 @@
import { Base64 } from 'js-base64'
import {getAgencyById} from "../../../api/sysUsers";
import Cookies from "js-cookie";
+import {getInstitutionDetail} from "@/api/backManage/insitution";
const emit = defineEmits(["getList"]);
const props = {
@@ -520,10 +521,11 @@
// });
})
const isAbleEdit = ref(false);
+const isReject = ref(false);
const openDialog=(type, value)=>{
- state.title = type === 'add' ? '新增/注册' : type ==='edit' ? '编辑' : '查看' ;
- getArea()
- if(type === 'edit' || type == 'view') {
+ state.title = type === 'add' ? '新增/注册' : (type ==='edit' || type ==='reject') ? '编辑' : '查看' ;
+ getArea()
+ if(type === 'edit' || type == 'view' || type ==='reject') {
state.registerForm.id = value.id
state.registerForm.username = value.username
state.registerForm.phone = value.phone
@@ -544,7 +546,8 @@
}
}
getArea()
-
+ state.registerForm.phone = info.user.phone
+ startPhone.value = info.user.phone
state.registerForm.agency.business = info.business.split(',').map(Number)
if(state.registerForm.agency.attribute === 0){
state.registerForm.agency.area = [info.city,info.district].filter(item => { return item && item.trim() })
@@ -560,6 +563,7 @@
state.certList = imgUrl ? imgUrl.split(',').map(url => {return {url} }) : []
}
+
}else{
ElMessage.warning(res.message)
}
@@ -567,8 +571,12 @@
if(type == 'view'){
state.isView = true
}
+ if(type === 'reject'){
+ isReject.value = true;
+ }
}
dialogVisible.value = true
+ console.log('state.registerForm',state.registerForm)
}
const validKey=(key,obj)=>{
@@ -712,8 +720,10 @@
}else {
const {confirmPassword, ...data} = JSON.parse(JSON.stringify(state.registerForm))
data.password = Base64.encode(data.password)
- console.log('data',data)
data.agency.business = data.agency.business.join(',')
+ if(isReject.value) {
+ data.state = 1;
+ }
// delete data.agency.area
console.log('data',data)
editAgency(data).then(res => {
@@ -722,7 +732,7 @@
type: 'success',
message: '编辑成功'
})
- emit("getList")
+
dialogVisible.value = false
state.registerForm.agency.attribute = 0
proxy.$refs.registerRef.resetFields()
@@ -730,7 +740,7 @@
state.fileList = []
state.certList = []
loading.value = false
-
+ emit("getList")
}else{
ElMessage({
type: 'warning',
diff --git a/src/layout/components/Sidebar/menu.js b/src/layout/components/Sidebar/menu.js
index 95c8ca5..e2bd32f 100644
--- a/src/layout/components/Sidebar/menu.js
+++ b/src/layout/components/Sidebar/menu.js
@@ -113,6 +113,13 @@
} ,
]
},
+ ],
+ noMenu: [
+ {
+ path: '/noMenu',
+ name: 'noMenu',
+ meta: { title: '提示',icon: 'form',affix: true }
+ },
]
}
diff --git a/src/router/index.js b/src/router/index.js
index 2ef8d6a..59f54a4 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -91,6 +91,19 @@
// ]
// },
{
+ path: '/noMenu',
+ component: Layout,
+ redirect: '/noMenu',
+ children: [
+ {
+ path: '/noMenu',
+ component: () => import('@/views/error/noMenu.vue'),
+ name: 'noMenu',
+ meta: { title: '提示',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
path: '',
component: Layout,
redirect: '/institution',
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 201f2d2..beee1d5 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -2,6 +2,7 @@
import { getToken, setToken, removeToken } from '@/utils/auth'
import defAva from '@/assets/images/profile.jpg'
import Cookies from "js-cookie";
+import {getUserById} from "@/api/sysUsers";
const useUserStore = defineStore(
'user',
{
@@ -21,10 +22,13 @@
const code = userInfo.code
const uuid = userInfo.uuid
const identity = userInfo.identity
- return new Promise((resolve, reject) => {
- login(username, password, code, uuid, identity).then(res => {
+ return new Promise( (resolve, reject) => {
+ login(username, password, code, uuid, identity).then( async res => {
setToken(res.data.token)
Cookies.set('userInfo',JSON.stringify(res.data))
+ await getUserById({userId:res.data.id}).then(res => {
+ Cookies.set('userState',JSON.stringify(res.data.state))
+ })
this.token = res.data.token
resolve()
}).catch(error => {
diff --git a/src/utils/request.js b/src/utils/request.js
index 5f7ce45..d2da40a 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -55,7 +55,7 @@
const s_url = sessionObj.url; // 请求地址
const s_data = sessionObj.data; // 请求数据
const s_time = sessionObj.time; // 请求时间
- const interval = 1; // 间隔时间(ms),小于此时间视为重复提交
+ const interval = 0; // 间隔时间(ms),小于此时间视为重复提交
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url && s_url!=='/system/common/uploadFile') {
const message = '数据正在处理,请勿重复提交';
console.warn(`[${s_url}]: ` + message)
diff --git a/src/views/components/loginForm.vue b/src/views/components/loginForm.vue
index 57b41b7..e2e2f2a 100644
--- a/src/views/components/loginForm.vue
+++ b/src/views/components/loginForm.vue
@@ -109,7 +109,7 @@
const redirect = ref(undefined);
onMounted(()=>{
-
+ Cookies.remove("userState");
})
const openRegist = ()=>{
@@ -156,11 +156,21 @@
// }, {});
const userInfo = JSON.parse(Cookies.get('userInfo'))
if(userInfo.identity === 0 ) {
+ //监管用户
sidebarRouters.value = menu.adminMenu
Cookies.set('routers',JSON.stringify(sidebarRouters.value))
}else if(userInfo.identity === 1) {
- sidebarRouters.value = menu.agencyMenu
- Cookies.set('routers',JSON.stringify(sidebarRouters.value))
+ const userState = JSON.parse(Cookies.get('userState'))
+ console.log("userState",userState)
+ //机构用户
+ //未审核状态不显示菜单
+ if(userState !==2 ){
+ sidebarRouters.value = menu.noMenu
+ Cookies.set('routers',JSON.stringify(sidebarRouters.value))
+ }else {
+ sidebarRouters.value = menu.agencyMenu
+ Cookies.set('routers',JSON.stringify(sidebarRouters.value))
+ }
}
let path = ""
if(sidebarRouters.value[0].children && sidebarRouters.value[0].children.length > 0){
diff --git a/src/views/error/noMenu.vue b/src/views/error/noMenu.vue
new file mode 100644
index 0000000..89c8ffc
--- /dev/null
+++ b/src/views/error/noMenu.vue
@@ -0,0 +1,63 @@
+<template>
+ <div class="app-container">
+ <div style="display: flex;align-items: center">
+ <span style="font-size: 18px">当前帐号状态:</span>
+ <el-tag :type=" data.state == 0 ? 'info' : data.state == 1 ? '' : data.state == 2 ?'success': data.state == 3 || data.state == 4 ?'danger':''">
+ {{data.stateMsg}}
+ </el-tag>
+ </div>
+ <span style="font-size: 25px;font-weight: 600;margin-top: 20px">请<span v-if="data.state ===3">整改提交后</span>联系监管部门审核</span>
+ </div>
+</template>
+
+<script setup>
+import {getCurrentInstance, onMounted, reactive, ref, toRefs, watch} from "vue";
+import Cookies from "js-cookie";
+import {getUserById} from "@/api/sysUsers";
+import {ElMessage} from "element-plus";
+import menu from "@/layout/components/Sidebar/menu";
+const { proxy } = getCurrentInstance();
+const data = reactive({
+ state: null,
+ stateMsg: ''
+});
+
+const userInfo = ref();
+//页面加载
+onMounted( () => {
+ userInfo.value = JSON.parse(Cookies.get('userInfo'))
+ getState();
+});
+const sidebarRouters = ref([])
+const getState = async () => {
+ console.log('menu')
+ const param = {
+ userId: userInfo.value.id
+ }
+ const res = await getUserById(param)
+ if(res.code == 200){
+ data.state = res.data.state;
+ data.stateMsg = res.data.state === 0?'暂存':res.data.state === 1 ? '审核中':res.data.state === 2 ? '审批通过':res.data.state === 3? '审批驳回':'已作废';
+ if(res.data.state === 2) {
+ sidebarRouters.value = menu.agencyMenu
+ Cookies.set('routers',JSON.stringify(sidebarRouters.value))
+ location.href = '/project';
+ }
+ }else{
+ ElMessage({
+ type: 'warning',
+ message: res.message
+ })
+ }
+}
+</script>
+
+<style scoped lang="scss">
+.app-container{
+ margin-top: 10%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+}
+</style>
diff --git a/src/views/safetyReview/projectManage/components/expertsList.vue b/src/views/safetyReview/projectManage/components/expertsList.vue
index 2d78c70..931216c 100644
--- a/src/views/safetyReview/projectManage/components/expertsList.vue
+++ b/src/views/safetyReview/projectManage/components/expertsList.vue
@@ -147,12 +147,12 @@
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="dialogVisible = false" size="default">取 消</el-button>
- <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button>
- </span>
- </template>
+<!-- <template #footer>-->
+<!-- <span class="dialog-footer">-->
+<!-- <el-button @click="dialogVisible = false" size="default">取 消</el-button>-->
+<!-- <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button>-->
+<!-- </span>-->
+<!-- </template>-->
</el-dialog>
<project-dialog ref="projectRef" @getList="getList"></project-dialog>
</div>
@@ -292,6 +292,12 @@
const handleSelectionChange = (val) => {
data.selected = val
+ if(data.selected.length>0){
+ emit('getName',data.title,data.selected[data.selected.length - 1])
+ data.dialogVisible = false
+ }
+
+
}
const search = ()=>{
--
Gitblit v1.9.2