部分问题修复
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-09-12 17:36:38 +08:00
parent 1bef8a027a
commit 72f2e0a459
8 changed files with 59 additions and 65 deletions

View File

@ -3,7 +3,7 @@ import Vue from 'vue'
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
import ElementUI from 'element-ui'
import { getBasicDataAllSelect, getFrontInternationalizationList,getCurrentPublishInfo } from '@/api/dictionary/dictionary'
import { getBasicDataAllSelect, getFrontInternationalizationList, getCurrentPublishInfo } from '@/api/dictionary/dictionary'
import './assets/css/theme-blue/index.css' // 浅绿色主题
import './assets/css/iconfont/index.css' // 阿里巴巴图标库
import i18n from './lang'
@ -15,7 +15,7 @@ Vue.use(vcrontab); //使用方式:
import App from './App'
import store from './store'
import router from './router'
import WHITELIST from "./utils/whiteList"
import '@/icons' // icon
import '@/permission' // permission control
import md5 from 'js-md5'
@ -185,7 +185,7 @@ async function VueInit() {
zhMessages[v.Code] = v.ValueCN
enMessages[v.Code] = v.Value
})
// 获取版本信息
// 获取版本信息
let PublishInfo = await getCurrentPublishInfo();
Vue.prototype.$version = PublishInfo.Result;
i18n.mergeLocaleMessage('zh', zhMessages)
@ -295,7 +295,7 @@ async function VueInit() {
if (eval(process.env.VUE_APP_LOGIN_FOR_PERMISSION)) {
setInterval(() => {
var lang = zzSessionStorage.getItem('lang') ? zzSessionStorage.getItem('lang') : 'zh'
if (_vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/' || _vm.$route.path === '/login' || _vm.$route.path === '/researchForm' || _vm.$route.path === '/researchLogin' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') {
if (WHITELIST.includes(_vm.$route.path)) {
return
}
if (_vm.$store.state.user.userId !== zzSessionStorage.getItem('userId')) {
@ -355,7 +355,7 @@ async function VueInit() {
/* eslint-disable */
waitOperate(eval(process.env.VUE_APP_LOGOUT_FOR_PERMISSION) ? () => {
var lang = zzSessionStorage.getItem('lang') ? zzSessionStorage.getItem('lang') : 'zh'
if (_vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/' || _vm.$route.path === '/login' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') {
if (WHITELIST.includes(_vm.$route.path)) {
count = 0;
localStorage.setItem('count', '0')
return
@ -383,7 +383,7 @@ async function VueInit() {
} : () => { }, process.env.VUE_APP_LOGOUT_FOR_TIME,
eval(process.env.VUE_APP_LOCK_FOR_PERMISSION) ? () => {
var lang = zzSessionStorage.getItem('lang') ? zzSessionStorage.getItem('lang') : 'zh'
if (_vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/login' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') {
if (WHITELIST.includes(_vm.$route.path)) {
count = 0;
localStorage.setItem('count', '0')
if (_vm.$route.path === '/login') {

View File

@ -7,13 +7,13 @@ import 'nprogress/nprogress.css'
import { getToken, removeToken } from '@/utils/auth'
import Vue from 'vue'
import { OSSclient } from './utils/oss'
import WHITELIST from './utils/whiteList'
import moment from "moment";
// import getPageTitle from '@/utils/get-page-title'
NProgress.configure({ showSpinner: false })
const whiteList = ['/activate', '/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
// 影像页关闭
const whiteList = WHITELIST
Vue.prototype.$openWindow = null
Vue.prototype.$setOpenWindow = (openWindow) => {
if (Vue.prototype.$openWindow) {

View File

@ -2,6 +2,7 @@ import axios from 'axios'
import { Message, MessageBox, Alert } from 'element-ui'
import store from '@/store'
import router from '@/router'
import WHITELIST from "./whiteList"
import Vue from 'vue'
const ROUTER = require('@/router');
axios.defaults.withCredentials = false
@ -25,7 +26,7 @@ service.interceptors.request.use(
}
try {
if (eval(process.env.VUE_APP_LOGIN_FOR_PERMISSION)) {
if (!path || path === '/ReviewersResearchForm' || path === '/ReviewersResearch' || path === '/' || path === '/login' || path === '/researchForm' || path === '/researchLogin' || path === '/email-recompose' || path === '/recompose' || path === '/resetpassword' || path === '/error') {
if (!path || WHITELIST.some(item => item === path)) {
return config
}
if (store.state.user.userId !== zzSessionStorage.getItem('userId')) {

2
src/utils/whiteList.js Normal file
View File

@ -0,0 +1,2 @@
const WHITELIST = ['/', "/curriculumVitae", 'researchDetail_m', '/researchForm', '/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/researchLogin_m', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
export default WHITELIST

View File

@ -39,7 +39,8 @@
<el-form-item :label="$t('system:hospital:isCanConnectInternet')"
v-hasPermi="['system:hospital:connectInternet']">
<el-switch v-model="hospital.IsCanConnectInternet" active-color="#13ce66"
inactive-color="#ff4949" active-text="是" inactive-text="否" :disabled="disabled">
inactive-color="#ff4949" :active-text="$fd('YesOrNo', true)"
:inactive-text="$fd('YesOrNo', false)" :disabled="disabled">
</el-switch>
</el-form-item>
<el-form-item :label="$t('system:hospital:logo')" prop="HospitalLogoPath">

View File

@ -126,7 +126,7 @@
<el-button @click="handleCancel" size="small">{{ $t('common:button:cancel') }}</el-button>
<el-button type="primary" size="small" @click="handleSave" :loading="loading">{{
$t('common:button:save')
}}</el-button>
}}</el-button>
</span>
</el-dialog>
</div>
@ -170,27 +170,27 @@ export default {
IdentityUserIdList: []
},
rules: {
Affiliation: [
{ required: true, message: 'Please specify', trigger: 'blur' },
],
// Affiliation: [
// { required: true, message: 'Please specify', trigger: 'blur' },
// ],
Code: [
{ required: true, message: 'Please specify', trigger: 'blur' },
],
ContactName: [
{ required: true, message: 'Please specify', trigger: 'blur' },
],
ContactPhone: [
{ required: true, message: 'Please specify', trigger: 'blur' },
],
// ContactName: [
// { required: true, message: 'Please specify', trigger: 'blur' },
// ],
// ContactPhone: [
// { required: true, message: 'Please specify', trigger: 'blur' },
// ],
Name: [
{ required: true, message: 'Please specify', trigger: 'blur' },
],
CallingAE: [
{ required: true, message: 'Please specify', trigger: 'blur' },
],
IdentityUserIdList: [
{ required: true, type: 'array', message: 'Please select', trigger: 'blur' },
],
// CallingAE: [
// { required: true, message: 'Please specify', trigger: 'blur' },
// ],
// IdentityUserIdList: [
// { required: true, type: 'array', message: 'Please select', trigger: 'blur' },
// ],
},
GAUserList: [],
status: 'add'

View File

@ -62,7 +62,7 @@
<el-table-column :label="$t('system:hospital:table:updateTime')" prop="UpdateTime" min-width="150"
show-overflow-tooltip />
<el-table-column :label="$t('common:action:action')" fixed="right" prop="" min-width="200"
<el-table-column :label="$t('common:action:action')" fixed="right" prop="" min-width="250"
show-overflow-tooltip>
<template slot-scope="scope">
<el-button size="mini" :disabled="scope.row.IsDefault" type="text" icon="el-icon-circle-check"

View File

@ -2,62 +2,46 @@
<div class="role">
<div ref="leftContainer" class="left">
<el-form :inline="true">
<el-form-item label="关键字">
<el-input
v-model="queryParams.SearchFilter"
placeholder="请输入关键字"
clearable
size="small"
@keyup.enter.native="getList"
/>
<el-form-item :label="$t('il8n:search:keyword')">
<el-input v-model="queryParams.SearchFilter" placeholder="" clearable size="small"
@keyup.enter.native="getList" />
</el-form-item>
<el-form-item label="状态">
<el-select v-model="queryParams.GroupId" placeholder="角色组" clearable size="small">
<el-option
v-for="item of dict.type.UserTypeGroup"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-form-item :label="$t('il8n:table:state')">
<el-select v-model="queryParams.GroupId" placeholder="" clearable size="small">
<el-option v-for="item of dict.type.UserTypeGroup" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList"></el-button>
<el-button v-hasPermi="['system:role:add']" type="primary" icon="el-icon-plus" size="mini" @click="handleAddRole"></el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">{{
$t('system:dicom:search:search') }}</el-button>
<el-button v-hasPermi="['system:role:add']" type="primary" icon="el-icon-plus" size="mini"
@click="handleAddRole">{{ $t('common:button:new') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" v-adaptive="{bottomOffset:30}" size="small" height="100" :data="list" class="table">
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 30 }" size="small" height="100" :data="list"
class="table">
<el-table-column type="index" width="50" />
<el-table-column label="User Type" prop="UserTypeName" min-width="220" show-overflow-tooltip />
<el-table-column label="Shortname" prop="UserTypeShortName" min-width="120" show-overflow-tooltip />
<el-table-column label="Group" prop="Note" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.UserTypeGroupList.map(v => {return v.GroupName}).toString() }}
{{scope.row.UserTypeGroupList.map(v => { return v.GroupName }).toString()}}
</template>
</el-table-column>
<el-table-column label="PermissionStr" prop="PermissionStr" min-width="100" show-overflow-tooltip />
<el-table-column label="User Type Enum" prop="UserTypeEnum" min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('UserType',scope.row.UserTypeEnum) }}
{{ $fd('UserType', scope.row.UserTypeEnum) }}
</template>
</el-table-column>
<el-table-column label="Description" prop="Description" min-width="220" show-overflow-tooltip />
<el-table-column label="Action" width="280" v-if="hasPermi(['system:role:edit','system:role:delete'])">
<!-- <el-table-column label="Description" prop="Description" min-width="220" show-overflow-tooltip /> -->
<el-table-column label="Action" width="280" v-if="hasPermi(['system:role:edit', 'system:role:delete'])">
<template slot-scope="scope">
<el-button
v-hasPermi="['system:role:edit']"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleEditRole(scope.row)"
>Edit</el-button>
<el-button
v-hasPermi="['system:role:delete']"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDeleteRole(scope.row)"
>Delete</el-button>
<el-button v-hasPermi="['system:role:edit']" size="mini" type="text" icon="el-icon-edit"
@click="handleEditRole(scope.row)">{{ $t('common:action:edit') }}</el-button>
<el-button v-hasPermi="['system:role:delete']" size="mini" type="text" icon="el-icon-delete"
@click="handleDeleteRole(scope.row)">{{ $t('common:button:delete') }}</el-button>
</template>
</el-table-column>
</el-table>
@ -167,32 +151,38 @@ export default {
display: flex;
padding: 10px;
border-radius: 5px;
.left {
display: flex;
flex-direction: column;
width: 0;
flex-grow: 4;
// border-right: 1px solid #ccc;
.filter-container {
display: flex;
align-items: center;
margin: 5px;
}
.data-table {
flex: 1;
padding: 5px 0px;
}
.pagination-container {
text-align: right;
}
}
.right {
width: 0;
flex-grow: 6;
overflow-y: auto;
border-right: 1px solid #ccc;
}
.selected-row{
.selected-row {
background-color: cadetblue;
}
}