From d0887851c2521f0d100441b44ed1854a24291498 Mon Sep 17 00:00:00 2001
From: wangxiaoshuang <825034831@qq.com>
Date: Mon, 18 Aug 2025 13:41:39 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95=E5=8F=8A?=
=?UTF-8?q?=E8=A7=92=E8=89=B2=E5=88=87=E6=8D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/admin.js | 7 ++-
src/components/TrialsTab/index.vue | 52 +++++++++---------
src/layout/components/Navbar.vue | 7 +--
src/permission.js | 55 +++++++++++++------
src/store/modules/user.js | 34 +++++++-----
src/views/login/index.vue | 13 ++---
.../trials-layout/components/trialsNavbar.vue | 14 +++--
.../attachments/self-attachment/index.vue | 6 +-
8 files changed, 109 insertions(+), 79 deletions(-)
diff --git a/src/api/admin.js b/src/api/admin.js
index 3c10bb1..8a31009 100644
--- a/src/api/admin.js
+++ b/src/api/admin.js
@@ -46,10 +46,11 @@ export function updateUser(param) {
})
}
-export function getUser(userId) {
+export function getUser(params) {
return request({
- url: `/user/getUser/${userId}`,
- method: 'get'
+ url: `/user/getUser`,
+ method: 'get',
+ params
})
}
diff --git a/src/components/TrialsTab/index.vue b/src/components/TrialsTab/index.vue
index f843b81..49e2279 100644
--- a/src/components/TrialsTab/index.vue
+++ b/src/components/TrialsTab/index.vue
@@ -128,20 +128,20 @@ export default {
}
// document.cookie = 'TrialId=' + this.$route.query.trialId + ';path=/'
},
- trialId(v) {
- getUserDocumentList({ TrialId: this.$route.query.trialId }).then(
- async (res) => {
- var total = res.OtherInfo.NeedSignCount;
- var TrialStatusStr = res.OtherInfo.TrialStatusStr;
- this.IsAdditionalAssessment = res.OtherInfo.IsAdditionalAssessment;
- this.TrialStatusStr = TrialStatusStr;
- await store.dispatch("user/setTotalNeedSignTrialDocCount", total);
- await store.dispatch("user/setTrialStatusStr", TrialStatusStr);
- this.TrialConfig = res.OtherInfo.TrialConfig;
- this.IsAllOnlySRReading = res.OtherInfo.IsAllOnlySRReading;
- }
- );
- },
+ // trialId(v) {
+ // getUserDocumentList({ TrialId: this.$route.query.trialId }).then(
+ // async (res) => {
+ // var total = res.OtherInfo.NeedSignCount;
+ // var TrialStatusStr = res.OtherInfo.TrialStatusStr;
+ // this.IsAdditionalAssessment = res.OtherInfo.IsAdditionalAssessment;
+ // this.TrialStatusStr = TrialStatusStr;
+ // await store.dispatch("user/setTotalNeedSignTrialDocCount", total);
+ // await store.dispatch("user/setTrialStatusStr", TrialStatusStr);
+ // this.TrialConfig = res.OtherInfo.TrialConfig;
+ // this.IsAllOnlySRReading = res.OtherInfo.IsAllOnlySRReading;
+ // }
+ // );
+ // },
},
mounted() {
// console.log(this.trialsRouter);
@@ -150,18 +150,18 @@ export default {
if (~url.indexOf("?")) {
query = url.split("?")[1];
}
- getUserDocumentList({ TrialId: this.$route.query.trialId }).then(
- async (res) => {
- var total = res.OtherInfo.NeedSignCount;
- var TrialStatusStr = res.OtherInfo.TrialStatusStr;
- this.IsAdditionalAssessment = res.OtherInfo.IsAdditionalAssessment;
- this.TrialStatusStr = TrialStatusStr;
- await store.dispatch("user/setTotalNeedSignTrialDocCount", total);
- await store.dispatch("user/setTrialStatusStr", TrialStatusStr);
- this.TrialConfig = res.OtherInfo.TrialConfig;
- this.IsAllOnlySRReading = res.OtherInfo.IsAllOnlySRReading;
- }
- );
+ // getUserDocumentList({ TrialId: this.$route.query.trialId }).then(
+ // async (res) => {
+ // var total = res.OtherInfo.NeedSignCount;
+ // var TrialStatusStr = res.OtherInfo.TrialStatusStr;
+ // this.IsAdditionalAssessment = res.OtherInfo.IsAdditionalAssessment;
+ // this.TrialStatusStr = TrialStatusStr;
+ // await store.dispatch("user/setTotalNeedSignTrialDocCount", total);
+ // await store.dispatch("user/setTrialStatusStr", TrialStatusStr);
+ // this.TrialConfig = res.OtherInfo.TrialConfig;
+ // this.IsAllOnlySRReading = res.OtherInfo.IsAllOnlySRReading;
+ // }
+ // );
this.selectedTab();
this.getTrialList();
var firstGoIn = this.trialsRouter.children.find((v) => {
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index fcbc69b..49bb9e7 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -95,16 +95,15 @@ export default {
this.toggleRoleVisible = true
})
},
- loginByRole(row) {
- let { UserId, UserTypeId } = row
- if (this.$store.state.user.userId === UserId) {
+ loginByRole(userRoleId) {
+ if (this.$store.state.user.userId === userRoleId) {
this.toggleRoleVisible = false
this.toggleRoleLoading = false
return false
}
this.toggleRoleLoading = true
this.$store
- .dispatch('user/loginByRole', { UserId, UserTypeId })
+ .dispatch('user/loginByRole', { userRoleId })
.then((res) => {
if (res) {
this.$store
diff --git a/src/permission.js b/src/permission.js
index de7a560..1412b83 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -1,9 +1,10 @@
import router from './router'
+import { resetRouter } from '@/router'
import store from './store'
// import { Message } from 'element-ui'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
-import { getToken } from '@/utils/auth'
+import { getToken, removeToken } from '@/utils/auth'
import Vue from 'vue'
import { OSSclient } from './utils/oss'
import moment from "moment";
@@ -35,19 +36,26 @@ router.beforeEach(async (to, from, next) => {
if (hasToken) {
if (to.path === '/login' || to.path === '/recompose' || to.path === '/email-recompose' || to.path === '/error' || to.path === '/ReviewersResearchForm' || to.path === '/ReviewersResearch') {
if (to.path === '/ReviewersResearch') {
- OSSclient()
- await this.$store.dispatch('user/logout')
+ await OSSclient()
+ await store.dispatch('user/logout')
}
if (to.path === '/ReviewersResearchForm') {
- OSSclient()
- }
- if (to.path === '/login') {
- OSSclient()
+ await OSSclient()
}
next()
NProgress.done()
+ } else if (from.path === '/researchForm') {
+ removeToken()
+ const lang = to.query.lang || zzSessionStorage.getItem('lang')
+ next(`/researchLogin?trialId=${to.query.trialId}&lang=${lang}`)
+ NProgress.done()
+ } else if (from.path === '/researchDetail_m') {
+ removeToken()
+ const lang = to.query.lang || zzSessionStorage.getItem('lang')
+ next(`/researchLogin_m?trialId=${to.query.trialId}&lang=${lang}`)
+ NProgress.done()
} else {
- OSSclient()
+ await OSSclient()
const hasGetUserInfo = store.getters.userId
if (hasGetUserInfo) {
next()
@@ -55,10 +63,13 @@ router.beforeEach(async (to, from, next) => {
try {
// 获取用户信息
await store.dispatch('user/getInfo')
+ await store.dispatch('user/getUserInfo')
const accessRoutes = await store.dispatch('permission/generateRoutes')
+ resetRouter()
router.addRoutes(accessRoutes)
next({ ...to, replace: true })
} catch (error) {
+ console.log(error)
// 删除token并进入登录页面以重新登录
await store.dispatch('user/resetToken')
next(`/login?redirect=${to.path}`)
@@ -69,17 +80,29 @@ router.beforeEach(async (to, from, next) => {
} else {
/* has no token*/
if (whiteList.indexOf(to.path) !== -1) {
- // 在免登录whiteList中,直接进入
- if (to.path === '/readingDicoms' || to.path === '/noneDicomReading') {
- OSSclient()
+ if (to.path === '/researchLogin') {
+ const lang = to.query.lang || zzSessionStorage.getItem('lang')
+ const flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
+ if (flag) {
+ next(`/researchLogin_m?trialId=${to.query.trialId}&lang=${lang}`)
+ } else {
+ next()
+ }
+ } else {
+ // 在免登录whiteList中,直接进入
+ if (to.path === '/readingDicoms' || to.path === '/noneDicomReading') {
+ await OSSclient()
+ }
+ next()
}
- if (to.path === '/login') {
- OSSclient()
- }
- next()
} else {
if (to.path === '/researchForm') {
- next(`/researchLogin?`)
+ const lang = to.query.lang || zzSessionStorage.getItem('lang')
+ next(`/researchLogin?trialId=${to.query.trialId}&lang=${lang}`)
+ NProgress.done()
+ } else if (to.path === '/researchDetail_m') {
+ const lang = to.query.lang || zzSessionStorage.getItem('lang')
+ next(`/researchLogin_m?trialId=${to.query.trialId}&lang=${lang}`)
NProgress.done()
} else if (to.path === '/ReviewersResearchForm') {
next(`/ReviewersResearch?`)
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 1c68ca7..5e66272 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -177,20 +177,21 @@ const actions = {
loginSelectUserRole(params).then(async response => {
if (response.IsSuccess) {
- const data = response.Result.JWTStr
+ const data = response.Result
+
try {
commit('SET_TOKEN', data)
setToken(data)
- commit('SET_USERID', UserId)
- zzSessionStorage.setItem('userId', UserId)
+ commit('SET_USERID', userRoleId)
+ zzSessionStorage.setItem('userId', userRoleId)
const userString = decodeURIComponent(escape(window.atob(data.split('.')[1].replace(/-/g, '+').replace(/_/g, '/'))))
const user = JSON.parse(userString)
- // return console.log(user, user.realName)
zzSessionStorage.setItem('userTypeShortName', user.userTypeShortName)
- // commit('SET_USERTYPESHORTNAME', user.userTypeShortName)
- commit('SET_NAME', user.realName)
- setName(user.realName)
- zzSessionStorage.setItem('realName', user.realName)
+ commit('SET_USERTYPESHORTNAME', user.userTypeShortName)
+ commit('SET_NAME', user.fullName)
+ setName(user.fullName)
+ commit('SET_IDENTITYUSERID', user.identityUserId)
+ zzSessionStorage.setItem('identityUserId', user.identityUserId)
zzSessionStorage.setItem('userTypeEnumInt', user.userTypeEnumInt)
var permissions = await getUserPermissions()
var menuTree = await getUserMenuTree()
@@ -236,16 +237,19 @@ const actions = {
commit('SET_PERMISSIONS', JSON.parse(zzSessionStorage.getItem('permissions')))
commit('SET_ISTESTUSER', zzSessionStorage.getItem('isTestUser'))
const user = JSON.parse(userString)
- commit('SET_NAME', zzSessionStorage.getItem('realName'))
- commit('SET_USERID', user.id)
+ commit('SET_NAME', zzSessionStorage.getItem('Name'))
+ commit('SET_USERTYPESHORTNAME', user.userTypeShortName)
+ commit('SET_IDENTITYUSERID', user.identityUserId)
+ commit('SET_USERID', user.userRoleId)
commit('SET_USERNAME', zzSessionStorage.getItem('userName'))
commit('SET_NEED_SIGN_SYSTEM_DOC_COUNT', parseInt(zzSessionStorage.getItem('TotalNeedSignSystemDocCount')))
commit('SET_NEED_SIGN_TRIALS_DOC_COUNT', parseInt(zzSessionStorage.getItem('TotalNeedSignTrialDocCount')))
- console.log(zzSessionStorage.getItem('TotalNeedSignSystemDocCount'))
- console.log(zzSessionStorage.getItem('TotalNeedSignTrialDocCount'))
+ commit('SET_IS_FIRST_SYSTEM_DOC_SIGN', zzSessionStorage.getItem('IsFirstSysDocNeedSign'))
+ // console.log(zzSessionStorage.getItem('TotalNeedSignSystemDocCount'))
+ // console.log(zzSessionStorage.getItem('TotalNeedSignTrialDocCount'))
zzSessionStorage.setItem('userName', user.name)
- zzSessionStorage.setItem('my_username', user.name)
- zzSessionStorage.setItem('userId', user.id)
+ zzSessionStorage.setItem('userId', user.userRoleId)
+ zzSessionStorage.setItem('identityUserId', user.identityUserId)
zzSessionStorage.setItem('userTypeShortName', user.userTypeShortName)
zzSessionStorage.setItem('userTypeEnumInt', user.userTypeEnumInt)
return user
@@ -277,7 +281,7 @@ const actions = {
// 获取用户信息
getUserInfo({ commit, state }) {
return new Promise((resolve, reject) => {
- getUser(state.userId).then(res => {
+ getUser().then(res => {
if (res.Result) {
commit('SET_ROLES', res.Result.AccountList)
}
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 919920e..17ed6c7 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -418,16 +418,13 @@ export default {
return
}
if (
- this.hasPermi([
- 'role:air',
- 'role:rpm',
- 'role:rcrc',
- 'role:rir',
- ])
+ this.hasPermi(['role:pm', 'role:oa', 'role:admin', 'role:dev'])
) {
- this.$router.replace({ path: '/trials/trials-list' })
+ history.replaceState(null, null, '/trials/trials-inspection')
+ history.go(0)
} else {
- this.$router.replace({ path: '/trials' })
+ history.replaceState(null, null, '/trials/trials-list')
+ history.go(0)
}
} else {
this.toggleRoleLoading = false
diff --git a/src/views/trials/trials-layout/components/trialsNavbar.vue b/src/views/trials/trials-layout/components/trialsNavbar.vue
index 4119eb4..b94fa77 100644
--- a/src/views/trials/trials-layout/components/trialsNavbar.vue
+++ b/src/views/trials/trials-layout/components/trialsNavbar.vue
@@ -140,23 +140,22 @@ export default {
},
},
created() {
- this.isReviewer = JSON.parse(zzSessionStorage.getItem('IsReviewer'))
+ // this.isReviewer = JSON.parse(zzSessionStorage.getItem('IsReviewer'))
this.changeRoute(this.$route)
this.getInfo()
this.$store.dispatch('user/getUserInfo')
},
methods: {
...mapMutations({ setLanguage: 'lang/setLanguage' }),
- loginByRole(row) {
- let { UserId, UserTypeId } = row
- if (this.$store.state.user.userId === UserId) {
+ loginByRole(userRoleId) {
+ if (this.$store.state.user.userId === userRoleId) {
this.toggleRoleVisible = false
this.toggleRoleLoading = false
return false
}
this.toggleRoleLoading = true
this.$store
- .dispatch('user/loginByRole', { UserId, UserTypeId })
+ .dispatch('user/loginByRole', { userRoleId })
.then((res) => {
if (res) {
this.$store
@@ -180,13 +179,18 @@ export default {
) {
history.replaceState(null, null, '/trials/trials-inspection')
history.go(0)
+ // this.$router.replace({ path: '/trials/trials-list' })
} else {
history.replaceState(null, null, '/trials/trials-list')
history.go(0)
+ // this.$router.replace({ path: '/trials/trials-workbench' })
}
this.toggleRoleVisible = false
this.toggleRoleLoading = false
this.$EventBus.$emit('reload')
+ // this.$nextTick(() => {
+ // window.location.reload()
+ // })
} else {
// 此账户暂未配置菜单权限,请联系管理员处理后再登录。
this.toggleRoleLoading = false
diff --git a/src/views/trials/trials-panel/attachments/self-attachment/index.vue b/src/views/trials/trials-panel/attachments/self-attachment/index.vue
index 3487f86..a6e151d 100644
--- a/src/views/trials/trials-panel/attachments/self-attachment/index.vue
+++ b/src/views/trials/trials-panel/attachments/self-attachment/index.vue
@@ -24,7 +24,9 @@
-
+
+
+
@@ -229,7 +231,7 @@ export default {
if (this.$route.query.isSign) {
this.searchData.IsSign = JSON.parse(this.$route.query.isSign)
}
- this.getList()
+ // this.getList()
},
destroyed() {
if (this.timer) {