diff --git a/.env.development b/.env.development index d48ca615..1795b787 100644 --- a/.env.development +++ b/.env.development @@ -27,7 +27,7 @@ VUE_APP_LOGOUT_FOR_PERMISSION = false VUE_APP_LOGOUT_FOR_TIME = 1800 # 是否开启密码正则验证 true:是 false:否 -VUE_APP_PASSWORD_FOR_PERMISSION = true +VUE_APP_PASSWORD_FOR_PERMISSION = false # 密码校验规则 VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!%#*?&\$~])[A-Za-z0-9-~_.@^+\$~!%#*?&]{8,32}$ @@ -35,6 +35,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$! # 是否开启文档签署验证 true:是 false:否 VUE_APP_WORD_FOR_PERMISSION = false +# 公司名称 +VUE_APP_COMPANY_NAME = "Extensive Imaging" + # dicom文件地址 VUE_APP_DICOM_PATH = 'https://zyypacs.oss-cn-shanghai.aliyuncs.com' diff --git a/.env.prod b/.env.prod index 9b2fc4e8..49d97ae9 100644 --- a/.env.prod +++ b/.env.prod @@ -29,6 +29,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$! # 是否开启文档签署验证 true:是 false:否 VUE_APP_WORD_FOR_PERMISSION = true +# 公司名称 +VUE_APP_COMPANY_NAME = "Extensive Imaging" + # dicom文件地址 # VUE_APP_DICOM_PATH = 'http://101.132.193.237:7080' VUE_APP_DICOM_PATH = 'https://zyypacs-prod.oss-cn-shanghai.aliyuncs.com' diff --git a/.env.uat b/.env.uat index e0ad567f..1f04b231 100644 --- a/.env.uat +++ b/.env.uat @@ -31,6 +31,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$! # 是否开启文档签署验证 true:是 false:否 VUE_APP_WORD_FOR_PERMISSION = true +# 公司名称 +VUE_APP_COMPANY_NAME = "Extensive Imaging" + # dicom文件地址 VUE_APP_DICOM_PATH = 'https://zyypacs-uat.oss-cn-shanghai.aliyuncs.com' diff --git a/.env.usa b/.env.usa index 1f1d2d26..b1d35930 100644 --- a/.env.usa +++ b/.env.usa @@ -2,7 +2,7 @@ ENV = 'production' NODE_ENV = 'production' # base public path -VUE_APP_BASE_PATH = 'https://ei-code-prod.s3.amazonaws.com/2024-01-31/' +VUE_APP_BASE_PATH = 'https://ei-code-prod.s3.amazonaws.com/2024-04-29/' # 是否开启登陆限制 true:是 false:否 VUE_APP_LOGIN_FOR_PERMISSION = false @@ -28,6 +28,9 @@ VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$! # 是否开启文档签署验证 true:是 false:否 VUE_APP_WORD_FOR_PERMISSION = true +# 公司名称 +VUE_APP_COMPANY_NAME = "Elevate Imaging" + # dicom文件地址 VUE_APP_DICOM_PATH = 'https://zyypacs-usa.oss-us-west-1.aliyuncs.com' diff --git a/package-lock.json b/package-lock.json index 7c02734b..285d43f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11520,6 +11520,15 @@ "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, + "moment-timezone": { + "version": "0.5.45", + "resolved": "https://registry.npmmirror.com/moment-timezone/-/moment-timezone-0.5.45.tgz", + "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", + "dev": true, + "requires": { + "moment": "^2.29.4" + } + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz", diff --git a/package.json b/package.json index 38212714..4ed17b88 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "EICS", "version": "1.3.2", "scripts": { - "dev": "vue-cli-service serve --open", + "dev": "vue-cli-service serve --open --mode development", "build": "vue-cli-service build", "build:prod": "vue-cli-service build --mode prod", "build:uat": "vue-cli-service build --mode uat", @@ -83,6 +83,7 @@ "eslint-plugin-vue": "^6.2.2", "html-webpack-plugin": "3.2.0", "minio": "^7.1.3", + "moment-timezone": "^0.5.45", "node-xlsx": "^0.21.0", "runjs": "^4.3.2", "script-ext-html-webpack-plugin": "2.1.3", diff --git a/src/App.vue b/src/App.vue index 03b14177..1d5e9db3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -148,8 +148,8 @@ export default { } else { this.tableData = Object.assign([], this.arr) } - console.log(JSON.stringify(this.$path)) - console.log(JSON.stringify(this.tableData)) + // console.log(JSON.stringify(this.$path)) + // console.log(JSON.stringify(this.tableData)) } } } diff --git a/src/api/dictionary/dictionary.js b/src/api/dictionary/dictionary.js index e4d9c162..cb2aaec8 100644 --- a/src/api/dictionary/dictionary.js +++ b/src/api/dictionary/dictionary.js @@ -22,9 +22,9 @@ export function getBasicDataSelects(param) { }) } -export function getBasicDataAllSelect(params) { +export function getBasicDataAllSelect(params, isSystem) { return request({ - url: params ? `/Dictionary/getBasicDataAllSelect?TrialReadingCriterionId=${params}` : `/Dictionary/getBasicDataAllSelect`, + url: params ? (isSystem ? `/Dictionary/getBasicDataAllSelect?SystemReadingCriterionId=${params}` : `/Dictionary/getBasicDataAllSelect?TrialReadingCriterionId=${params}`) : `/Dictionary/getBasicDataAllSelect`, method: 'get' }) } diff --git a/src/api/trials.js b/src/api/trials.js index 7808c3f3..1cdb1ff0 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -1747,6 +1747,21 @@ export function deleteTrialExternalUser(id) { method: 'delete' }) } + +export function getUserTobeDoneRecord() { + return request({ + url: `/PersonalWorkstation/getUserTobeDoneRecord`, + method: 'get' + }) +} + +export function getNeedSignTrialDocTrialIdList() { + return request({ + url: `/PersonalWorkstation/getNeedSignTrialDocTrialIdList`, + method: 'get' + }) +} + export function getBasicStat() { return request({ url: `/PersonalWorkstation/getBasicStat`, @@ -2795,6 +2810,29 @@ export function saveImageQuality(param) { data: param }) } +export function getIsSuvMaxLesion(param) { + return request({ + url: `/LuganoCalculate/getIsSuvMaxLesion`, + method: 'post', + data: param + }) +} + +export function getCanChooseNotMerge(param) { + return request({ + url: `/LuganoCalculate/getCanChooseNotMerge`, + method: 'post', + data: param + }) +} +export function saveTaskQuestion(saveQuestionType, param) { + return request({ + url: `/SaveTaskQuestion/${saveQuestionType}`, + method: 'post', + data: param + }) +} + export function deleteReadingRowAnswer(param) { return request({ url: `/ReadingImageTask/deleteReadingRowAnswer`, @@ -2864,6 +2902,14 @@ export function asyncTrialCriterionDictionary(param) { }) } +export function configTrialProcessInfoVerification(param) { + return request({ + url: `/TrialConfig/configTrialProcessInfoVerification`, + method: 'post', + data: param + }) +} + export function getTrialEmailNoticeConfigList(param) { return request({ url: `/TrialEmailNoticeConfig/getTrialEmailNoticeConfigList`, @@ -3519,3 +3565,105 @@ export function getTrialSiteSurveySelectList(param) { data: param }) } +export function getCanMergeLesion(param) { + return request({ + url: `/ReadingImageTask/getCanMergeLesion`, + method: 'post', + data: param + }) +} + +export function mergeLesion(param) { + return request({ + url: `/ReadingImageTask/mergeLesion`, + method: 'post', + data: param + }) +} + +export function resetAndAsyncCriterion(param) { + return request({ + url: `/Inspection/ReadingCriterion/ResetAndAsyncCriterion`, + method: 'post', + data: param + }) +} + +export function batchSetCriterionJoinJoinAnalysis(param) { + return request({ + url: `/DoctorWorkload/batchSetCriterionJoinJoinAnalysis`, + method: 'post', + data: param + }) +} + +export function updateTrialVirtualSiteCode(param) { + return request({ + url: `/TaskConsistentRule/updateTrialVirtualSiteCode`, + method: 'post', + data: param + }) +} + +export function getUpdateVirtualSiteCodeList(param) { + return request({ + url: `/TaskConsistentRule/getUpdateVirtualSiteCodeList?trialId=${param.trialId}`, + method: 'get' + }) +} + +export function addDefaultQuestions(param) { + return request({ + url: `/ReadingMedicineQuestion/addDefaultQuestions`, + method: 'post', + data: param + }) +} + +export function getReadingCalculationData(param) { + return request({ + url: `/ReadingImageTask/getReadingCalculationData`, + method: 'post', + data: param + }) +} + +export function getTrialSignDocumentList(param) { + return request({ + url: `/TrialDocument/getTrialSignDocumentList`, + method: 'post', + data: param + }) +} + +export function getPreviousOtherPicturePath(param) { + return request({ + url: `/ReadingImageTask/getPreviousOtherPicturePath`, + method: 'post', + data: param + }) +} + +export function verifyIsCanConfirm(param) { + return request({ + url: `/ReadingMedicineQuestion/verifyIsCanConfirm`, + method: 'post', + data: param + }) +} + +export function getPTAndCtSeries(param) { + return request({ + url: `/SubjectVisit/getPTAndCtSeries`, + method: 'post', + data: param + }) +} + +export function getDicomSeriesInfo(param) { + return request({ + url: `/SubjectVisit/getDicomSeriesInfo`, + method: 'post', + data: param + }) +} diff --git a/src/api/user.js b/src/api/user.js index 0ccb3ec4..aa9354c5 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -7,7 +7,12 @@ export function login(data) { data }) } - +export function loginOut() { + return request({ + url: `/User/loginOut`, + method: 'get' + }) +} export function getAllDictionary() { return request({ url: '/dictionary/getAllDictionary', diff --git a/src/assets/pic-2.png b/src/assets/pic-2.png new file mode 100644 index 00000000..59ad4180 Binary files /dev/null and b/src/assets/pic-2.png differ diff --git a/src/assets/zzlogo3.png b/src/assets/zzlogo3.png index a2fefc7a..6a21b1c6 100644 Binary files a/src/assets/zzlogo3.png and b/src/assets/zzlogo3.png differ diff --git a/src/assets/zzlogo4.png b/src/assets/zzlogo4.png new file mode 100644 index 00000000..6a21b1c6 Binary files /dev/null and b/src/assets/zzlogo4.png differ diff --git a/src/components/TrialsTab/index.vue b/src/components/TrialsTab/index.vue index 7fb3956d..87ce2daa 100644 --- a/src/components/TrialsTab/index.vue +++ b/src/components/TrialsTab/index.vue @@ -2,13 +2,13 @@ @@ -45,6 +45,7 @@ export default { }, methods: { initFileList() { + if(!this.doctorId) return getAttachmentByType(this.doctorId, this.type) .then(res => { if (res.IsSuccess) { @@ -129,7 +130,7 @@ export default { this.fileList = [] this.$emit('getFileList', '', '') this.$message({ - message: 'Deleted successfully!', + message: this.$t('common:message:deletedSuccessfully'), type: 'success' }) } diff --git a/src/components/UploadFiles/index.vue b/src/components/UploadFiles/index.vue index 0c8c4e59..8d714045 100644 --- a/src/components/UploadFiles/index.vue +++ b/src/components/UploadFiles/index.vue @@ -9,7 +9,7 @@ :file-list="fileList" :accept="accept" > - Upload + {{ $t('common:button:upload') }} @@ -39,6 +39,7 @@ export default { } }, mounted() { + if(!this.doctorId) return this.initFileList() }, methods: { @@ -143,8 +144,7 @@ export default { this.$confirm('Sure to remove?', { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }).then(() => { deleteAttachment(file.Id, file.Path) .then(res => { @@ -152,7 +152,7 @@ export default { this.fileList.splice(this.fileList.findIndex(item => item.Id === file.Id), 1) this.$emit('getFileList', this.fileList) this.$message({ - message: 'Deleted successfully!', + message: this.$t('common:message:deletedSuccessfully'), type: 'success' }) } diff --git a/src/components/clinicalDataQuestions/components/uploadClinicalData.vue b/src/components/clinicalDataQuestions/components/uploadClinicalData.vue index a523a6c8..86819648 100644 --- a/src/components/clinicalDataQuestions/components/uploadClinicalData.vue +++ b/src/components/clinicalDataQuestions/components/uploadClinicalData.vue @@ -64,7 +64,7 @@ @@ -81,7 +81,6 @@ @@ -144,7 +143,6 @@ @@ -237,7 +235,7 @@ icon="el-icon-download" size="small" :loading="downloadLoading" - @click.native.prevent="handleDownloadTpl(cd.ClinicalDataTrialSetId)" + @click.native.prevent="handleDownloadTpl(cd)" > {{ $t('trials:uploadClinicalData:button:downloadTemplate') }} @@ -551,11 +549,8 @@ export default { }) }) }, - handleDownloadTpl(clinicalDataTrialSetId) { - this.downloadLoading = true - DownloadTrialClinicalFile(clinicalDataTrialSetId).then(data => { - this.downloadLoading = false - }).catch(() => { this.downloadLoading = false }) + handleDownloadTpl(cd) { + window.open(this.OSSclientConfig.basePath + cd.Path) } } diff --git a/src/const/sign-code.vue b/src/const/sign-code.vue index 4c309847..102ae04e 100644 --- a/src/const/sign-code.vue +++ b/src/const/sign-code.vue @@ -27,6 +27,7 @@ export default ReadingUnitConfirmation: 108, // 医学审核问题确认 MedicalAudit: 215,// 医学审核 HeavyReadingApproval: 216,// 重阅审批 + ResetAndAsyncCriterion: 218, //同步签名 } } diff --git a/src/icons/svg/record.svg b/src/icons/svg/record.svg new file mode 100644 index 00000000..bf326e83 --- /dev/null +++ b/src/icons/svg/record.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 88bcd754..d8a1ad17 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -23,23 +23,22 @@
- {{ name }} - ({{ userTypeShortName }}) + {{ `${name} (${userTypeShortName})` }} + - Edit Info - - - Account + {{$t('system:navbar:button:Profile')}} - Log Out + {{$t('system:navbar:button:Log Out')}}
+ @@ -50,12 +49,15 @@ import {mapGetters, mapMutations} from 'vuex' import Breadcrumb from '@/components/Breadcrumb' import Hamburger from '@/components/Hamburger' import Screenfull from '@/components/Screenfull' +import TopLang from './topLang' + export default { components: { Breadcrumb, Hamburger, - Screenfull + Screenfull, + TopLang }, data() { return { @@ -89,9 +91,6 @@ export default { editInfo() { this.$router.push({ name: 'BaiscInfo' }) }, - account() { - this.$router.push({ name: 'Account' }) - } } } diff --git a/src/layout/components/topLang.vue b/src/layout/components/topLang.vue new file mode 100644 index 00000000..540e4bd1 --- /dev/null +++ b/src/layout/components/topLang.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/src/main.js b/src/main.js index 06d74021..29ba2ca3 100644 --- a/src/main.js +++ b/src/main.js @@ -160,10 +160,16 @@ Vue.prototype.fileToBlob = (file) => { var _vm async function VueInit () { var params + var res if (~window.location.href.indexOf('/readingDicoms') || ~window.location.href.indexOf('/noneDicomReading') || ~window.location.href.indexOf('/criterionquestions') || ~window.location.href.indexOf('/petct')) { params = $q('TrialReadingCriterionId') + res = await getBasicDataAllSelect(params) + } else if (~window.location.href.indexOf('/ecrfPreview')) { + params = $q('SystemReadingCriterionId') + res = await getBasicDataAllSelect(params, true) + } else { + res = await getBasicDataAllSelect(params) } - var res = await getBasicDataAllSelect(params) var Internationalization = await getFrontInternationalizationList() Vue.prototype.$tl = Internationalization.Result let zhMessages = {}, enMessages = {} @@ -326,6 +332,7 @@ async function VueInit () { } const h = _vm.$createElement /* eslint-disable */ + window.VUE_APP_COMPANY_NAME = process.env.VUE_APP_COMPANY_NAME; 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 === '/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') { diff --git a/src/permission.js b/src/permission.js index 3086972f..c1d1f2d5 100644 --- a/src/permission.js +++ b/src/permission.js @@ -56,6 +56,9 @@ router.beforeEach(async(to, from, next) => { /* has no token*/ if (whiteList.indexOf(to.path) !== -1) { // 在免登录whiteList中,直接进入 + if (to.path === '/readingDicoms' || to.path === '/noneDicomReading'){ + OSSclient() + } next() } else { if (to.path === '/researchForm') { diff --git a/src/router/index.js b/src/router/index.js index bcc946a3..34f8e9ae 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -139,6 +139,13 @@ export const constantRoutes = [ hidden: true, component: () => import('@/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt') }, + + { + path: '/historyScreenshot', + name: 'historyScreenshot', + hidden: true, + component: () => import('@/views/trials/trials-panel/reading/dicoms/components/Fusion/HistoryScreenshot') + }, { path: '/visitDicomReview', name: 'visitDicomReview', @@ -242,6 +249,11 @@ export const constantRoutes = [ component: () => import('@/views/404'), hidden: true }, + { + path: '/ecrfPreview', + component: () => import('@/views/dictionary/template/components/ECRF'), + hidden: true + }, { path: '/editUser', component: Layout, @@ -250,12 +262,7 @@ export const constantRoutes = [ children: [{ path: 'baiscInfo', name: 'BaiscInfo', - component: () => import('@/views/user/editInfo') - }, - { - path: 'account', - name: 'Account', - component: () => import('@/views/user/account') + component: () => import('@/views/user/myInfo') } ] } diff --git a/src/store/getters.js b/src/store/getters.js index 817ebfa3..e79727d6 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -40,6 +40,7 @@ const getters = { activeSeries: state => state.reading.activeSeries, lastCanvasTaskId: state => state.reading.lastCanvasTaskId, imageQuality: state => state.reading.imageQuality, + imageQualityIssues: state => state.reading.imageQualityIssues, language: state => state.lang.language, TotalNeedSignSystemDocCount: state => state.user.TotalNeedSignSystemDocCount, TotalNeedSignTrialDocCount: state => state.user.TotalNeedSignTrialDocCount, diff --git a/src/store/modules/reading.js b/src/store/modules/reading.js index 883020ad..521b951d 100644 --- a/src/store/modules/reading.js +++ b/src/store/modules/reading.js @@ -29,7 +29,8 @@ const getDefaultState = () => { currentReadingTaskState: 2, activeSeries: {}, lastCanvasTaskId: '', - imageQuality: null + imageQuality: null, + imageQualityIssues: null } } function getQuestions(questions) { @@ -183,6 +184,7 @@ const actions = { state.activeSeries = {} state.lastCanvasTaskId = '' state.imageQuality = null + state.imageQualityIssues = null resolve() }) }, @@ -875,6 +877,9 @@ const actions = { setImageQuality({ state }, imageQuality) { state.imageQuality = isNaN(parseInt(imageQuality)) ? null : parseInt(imageQuality) }, + setImageQualityIssues({ state }, imageQualityIssues) { + state.imageQualityIssues = isNaN(parseInt(imageQualityIssues)) ? null : parseInt(imageQualityIssues) + }, addQuestionMeasuredData({ state }, obj) { return new Promise(resolve => { var index = state.visitTaskList.findIndex(i => i.VisitTaskId === obj.visitTaskId) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 6f3d378e..cb033368 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,5 +1,5 @@ import { getToken, setToken, removeToken, setName, removeName } from '@/utils/auth' -import { login, getUserMenuTree, getUserPermissions } from '@/api/user' +import { login,loginOut,getUserMenuTree, getUserPermissions } from '@/api/user' import { resetRouter } from '@/router' import md5 from 'js-md5' @@ -78,6 +78,9 @@ const mutations = { } const actions = { + changeUserName({ commit }, userName) { + commit('SET_USERNAME', userName) + }, // user login login({ commit }, userInfo) { const { username, password } = userInfo @@ -175,12 +178,17 @@ const actions = { commit('SET_NAME', zzSessionStorage.getItem('realName')) }, // user logout - logout({ commit, state }) { - removeToken() // must remove token first - resetRouter() - removeName() - zzSessionStorage.clear() - commit('RESET_STATE') + async logout({ commit, state }) { + try{ + await loginOut() + removeToken() // must remove token first + resetRouter() + removeName() + zzSessionStorage.clear() + commit('RESET_STATE') + }catch(e){ + console.log(e) + } }, setToken({ commit }, token) { commit('SET_TOKEN', token) diff --git a/src/utils/dcmUpload/anonymization.js b/src/utils/dcmUpload/anonymization.js index a018d399..30e805ed 100644 --- a/src/utils/dcmUpload/anonymization.js +++ b/src/utils/dcmUpload/anonymization.js @@ -54,7 +54,7 @@ export const anonymization = function (file, config) { } } } - console.log(dataset) + // console.log(dataset) let newDicomFile = dataset.write() const bufferArray = new Uint8Array(newDicomFile) const blob = new Blob([bufferArray], { type: 'application/octet-stream' }) diff --git a/src/utils/request.js b/src/utils/request.js index c6b742fb..685f7ff3 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -3,6 +3,8 @@ import { Message, MessageBox, Alert } from 'element-ui' import store from '@/store' import router from '@/router' import Vue from 'vue' +import moment from 'moment-timezone'; +console.log(moment.tz.guess()) axios.defaults.withCredentials = false const service = axios.create({ baseURL: '/api', @@ -19,6 +21,7 @@ service.interceptors.request.use( config.headers['Content-Type'] = 'application/json;charset=UTF-8' var language = zzSessionStorage.getItem('lang') config.headers['Accept-Language'] = language === 'en'?'en-US,en;q=0.5':'zh-CN,zh;q=0.9' + config.headers['TimeZoneId'] = moment.tz.guess() if (store.getters.token) { config.headers.Authorization = `Bearer ${store.getters.token}` } @@ -59,7 +62,11 @@ service.interceptors.response.use( MessageBox.confirm(res.ErrorMessage, { type: 'warning', showCancelButton: false, - callback: action => {} + callback: action => { + if(res.Code === 6) { + window.close() + } + } }) } return Promise.reject(res) @@ -71,7 +78,7 @@ service.interceptors.response.use( var message = '' if (error && error.response) { const status = error.response.status - if (error.response.data && error.response.data.Code === -1) { + if (error.response.data && (error.response.data.Code === -1 || error.response.data.Code === -2)) { store.dispatch('user/logout').then(() => { router.push(`/login`) this.$i18n.locale = 'zh' diff --git a/src/views/admin/menu/index.vue b/src/views/admin/menu/index.vue index fe5387e1..53741216 100644 --- a/src/views/admin/menu/index.vue +++ b/src/views/admin/menu/index.vue @@ -1,137 +1,135 @@ - - - + + + diff --git a/src/views/admin/role/index.vue b/src/views/admin/role/index.vue index 96fc5c79..69272c1f 100644 --- a/src/views/admin/role/index.vue +++ b/src/views/admin/role/index.vue @@ -89,16 +89,15 @@ export default { }) }, handleDeleteRole(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }).then(() => { deleteUserTypeRole(row.Id).then((res) => { if (res.IsSuccess) { this.list.splice(this.list.findIndex((item) => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }) }) diff --git a/src/views/admin/user/components/Account.vue b/src/views/admin/user/components/Account.vue index 4deb34e4..4ee4bfeb 100644 --- a/src/views/admin/user/components/Account.vue +++ b/src/views/admin/user/components/Account.vue @@ -1,39 +1,38 @@ - - + + diff --git a/src/views/admin/user/list/index.vue b/src/views/admin/user/list/index.vue index e1baab23..5adadd1c 100644 --- a/src/views/admin/user/list/index.vue +++ b/src/views/admin/user/list/index.vue @@ -113,18 +113,17 @@ export default { }, // 删除用户 handleDeleteUser(data) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { deleteSysUser(data.Id) .then(res => { if (res.IsSuccess) { this.users.splice(this.users.findIndex(item => item.Id === data.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }) }) diff --git a/src/views/blindResumeInfo/components/Employment.vue b/src/views/blindResumeInfo/components/Employment.vue index 380098a6..c0f5379f 100644 --- a/src/views/blindResumeInfo/components/Employment.vue +++ b/src/views/blindResumeInfo/components/Employment.vue @@ -14,27 +14,26 @@ {{ employment.RankCN }} - - - {{ employment.Physician }} - {{ employment.PhysicianCN }} - - + + + + + + {{ employment.Position }} {{ employment.PositionCN }} - - - {{ employment.HospitalName }} {{ employment.HospitalNameCN }} + + {{ employment.UniversityAffiliated }} diff --git a/src/views/blindResumeInfo/info.vue b/src/views/blindResumeInfo/info.vue index e10c07c8..1790345c 100644 --- a/src/views/blindResumeInfo/info.vue +++ b/src/views/blindResumeInfo/info.vue @@ -90,11 +90,12 @@ export default { this.setLanguage('zh') this.$updateDictionary() } - this.title = this.doctorInfo.BasicInfoView?`${this.doctorInfo.BasicInfoView.FirstName} ${this.doctorInfo.BasicInfoView.LastName}${this.$t('resumeInfo:title:Details')}`:'' + this.title = this.doctorInfo.BasicInfoView?`${this.doctorInfo.BasicInfoView.BlindName}${this.$t('resumeInfo:title:Details')}`:'' } }, mounted() { this.isEnglish = !!((this.$route.query.isEnglish === true || this.$route.query.isEnglish === 'true')) + this.isEnglish = this.$i18n.locale === 'zh' ? false : true this.doctorId = this.$route.query.doctorId this.initForm() }, @@ -135,6 +136,7 @@ export default { } else { this.workInfo.Position = this.workInfo.Position this.workInfo.PositionCN = this.workInfo.PositionCN + // } this.workInfo.PositionOther = this.workInfo.PositionOther ? 'Other - ' + this.workInfo.PositionOther : 'Other' } @@ -179,7 +181,7 @@ export default { this.holiday = res.Result.InHoliday ? 'Yes' : 'No' this.doctorInfo = res.Result !this.doctorInfo.ResearchPublicationView ? this.doctorInfo.ResearchPublicationView = {} : ''; - this.title = `${this.doctorInfo.BasicInfoView.BlindName} 's Details` + this.title = this.doctorInfo.BasicInfoView?`${this.doctorInfo.BasicInfoView.BlindName}${this.$t('resumeInfo:title:Details')}`:'' this.htmlTitle = this.title this.initStatus() this.initEmploymentInfo() diff --git a/src/views/dashboard/bigdata.vue b/src/views/dashboard/bigdata.vue index f4cb4bd8..e551f087 100644 --- a/src/views/dashboard/bigdata.vue +++ b/src/views/dashboard/bigdata.vue @@ -126,8 +126,7 @@ export default { this.$confirm('Sure to sign out', { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.$store.dispatch('user/logout').then(res => { diff --git a/src/views/dicom-show/dicom-preview.vue b/src/views/dicom-show/dicom-preview.vue index b3242fe0..5002dcf3 100644 --- a/src/views/dicom-show/dicom-preview.vue +++ b/src/views/dicom-show/dicom-preview.vue @@ -63,7 +63,7 @@ import * as dicomParser from 'dicom-parser' import * as cornerstone from 'cornerstone-core' import * as cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader' -import dicomStore from '@/utils/dicom-store.js' +import dicomStore from '@/utils/dicom-store' import dicomViewer from '@/components/Dicom/DicomViewer' import dicomPreview from '@/components/Dicom/DicomPreview' @@ -86,6 +86,10 @@ export default { uid: { type: String, default: '' + }, + studyList: { + type: Array, + default: [] } }, @@ -102,7 +106,7 @@ export default { var totalHeight = window.innerHeight || document.body.clientHeight var wrapper = this.$refs['preview-wrapper'] wrapper.style.height = (totalHeight - 70) + 'px' - if (!dicomStore.studyList || !this.uid) return + if (!this.studyList || !this.uid) return this.loadStudy() }, @@ -120,7 +124,7 @@ export default { return newObj }, loadStudy() { - var studyList = dicomStore.studyList + var studyList = this.studyList var studyUid = this.uid var studyItem = studyList.find(function(item) { return item.dicomInfo.studyUid === studyUid diff --git a/src/views/dicom-show/dicom-study.vue b/src/views/dicom-show/dicom-study.vue index efc385e2..2aea62e2 100644 --- a/src/views/dicom-show/dicom-study.vue +++ b/src/views/dicom-show/dicom-study.vue @@ -64,21 +64,24 @@ -
+
- {{ $t('trials:audit:table:isReading') }} - - - {{ $t('trials:audit:table:isDelete') }} - +
+ {{ $t('trials:audit:table:isReading') }} + +
+
+ {{ $t('trials:audit:table:isDelete') }} + +
@@ -403,6 +406,7 @@ export default { data.isReading = true } var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr) + message = message.replace('yyy', this.$fd('YesOrNo', !data.isReading)) this.$confirm(message, { distinguishCancelAndClose: true, type: 'warning' @@ -430,6 +434,7 @@ export default { data.isDeleted = true } var message = this.$t('trials:audit:message:changeSeriesStatus').replace('xxx', statusStr) + message = message.replace('yyy', this.$fd('YesOrNo', !data.isDeleted)) this.$confirm(message, { distinguishCancelAndClose: true, type: 'warning' diff --git a/src/views/dicom-show/dicom-visit.vue b/src/views/dicom-show/dicom-visit.vue index 27788f7e..feba26c4 100644 --- a/src/views/dicom-show/dicom-visit.vue +++ b/src/views/dicom-show/dicom-visit.vue @@ -83,21 +83,24 @@
-
+
- {{ $t('trials:audit:table:isReading') }} - - - {{ $t('trials:audit:table:isDelete') }} - +
+ {{ $t('trials:audit:table:isReading') }} + +
+
+ {{ $t('trials:audit:table:isDelete') }} + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + diff --git a/src/views/dictionary/institutions/components/Sites.vue b/src/views/dictionary/institutions/components/Sites.vue index 09daef6e..cadc28d2 100644 --- a/src/views/dictionary/institutions/components/Sites.vue +++ b/src/views/dictionary/institutions/components/Sites.vue @@ -213,11 +213,10 @@ export default { }, // 删除Site handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -227,7 +226,7 @@ export default { if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) this.$store.dispatch('global/setSite', {}) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false diff --git a/src/views/dictionary/institutions/components/Sponsors.vue b/src/views/dictionary/institutions/components/Sponsors.vue index db31ad96..f1292653 100644 --- a/src/views/dictionary/institutions/components/Sponsors.vue +++ b/src/views/dictionary/institutions/components/Sponsors.vue @@ -139,11 +139,10 @@ export default { }, // 删除Sponsor handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -152,7 +151,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false diff --git a/src/views/dictionary/newdictionary/bool/index.vue b/src/views/dictionary/newdictionary/bool/index.vue index 31a6fd70..bf3ca8d3 100644 --- a/src/views/dictionary/newdictionary/bool/index.vue +++ b/src/views/dictionary/newdictionary/bool/index.vue @@ -182,11 +182,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -195,7 +194,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/newdictionary/components/DictionaryChild.vue b/src/views/dictionary/newdictionary/components/DictionaryChild.vue index 93b39132..5e9a7493 100644 --- a/src/views/dictionary/newdictionary/components/DictionaryChild.vue +++ b/src/views/dictionary/newdictionary/components/DictionaryChild.vue @@ -154,11 +154,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -167,7 +166,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/newdictionary/config/index.vue b/src/views/dictionary/newdictionary/config/index.vue index 0355d9ce..c1a0dcf3 100644 --- a/src/views/dictionary/newdictionary/config/index.vue +++ b/src/views/dictionary/newdictionary/config/index.vue @@ -183,11 +183,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -196,7 +195,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/newdictionary/enum/index.vue b/src/views/dictionary/newdictionary/enum/index.vue index fc0f0a3c..a4683819 100644 --- a/src/views/dictionary/newdictionary/enum/index.vue +++ b/src/views/dictionary/newdictionary/enum/index.vue @@ -182,11 +182,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -195,7 +194,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/newdictionary/list/components/DictionaryChild.vue b/src/views/dictionary/newdictionary/list/components/DictionaryChild.vue index 68e4be05..f843d92c 100644 --- a/src/views/dictionary/newdictionary/list/components/DictionaryChild.vue +++ b/src/views/dictionary/newdictionary/list/components/DictionaryChild.vue @@ -153,11 +153,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -166,7 +165,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/newdictionary/list/index.vue b/src/views/dictionary/newdictionary/list/index.vue index 1d99476e..4c45bb6f 100644 --- a/src/views/dictionary/newdictionary/list/index.vue +++ b/src/views/dictionary/newdictionary/list/index.vue @@ -206,11 +206,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -219,7 +218,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/newdictionary/select/index.vue b/src/views/dictionary/newdictionary/select/index.vue index 3ab7d358..acca8552 100644 --- a/src/views/dictionary/newdictionary/select/index.vue +++ b/src/views/dictionary/newdictionary/select/index.vue @@ -183,11 +183,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -196,7 +195,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/newdictionary/setting/index.vue b/src/views/dictionary/newdictionary/setting/index.vue index b50f5803..be1d6fb5 100644 --- a/src/views/dictionary/newdictionary/setting/index.vue +++ b/src/views/dictionary/newdictionary/setting/index.vue @@ -122,11 +122,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -135,7 +134,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/sign/components/SceneList.vue b/src/views/dictionary/sign/components/SceneList.vue index c5892828..eb67bce5 100644 --- a/src/views/dictionary/sign/components/SceneList.vue +++ b/src/views/dictionary/sign/components/SceneList.vue @@ -1,162 +1,161 @@ - - + + diff --git a/src/views/dictionary/sign/index.vue b/src/views/dictionary/sign/index.vue index 07236d35..7e84582b 100644 --- a/src/views/dictionary/sign/index.vue +++ b/src/views/dictionary/sign/index.vue @@ -1,229 +1,228 @@ - - + + diff --git a/src/views/dictionary/template/components/Anonymization.vue b/src/views/dictionary/template/components/Anonymization.vue index d976aca0..d202154b 100644 --- a/src/views/dictionary/template/components/Anonymization.vue +++ b/src/views/dictionary/template/components/Anonymization.vue @@ -162,11 +162,10 @@ export default { }) }, handleDelete(row) { - this.$confirm('Sure to delete?', { + this.$confirm(this.$t('trials:uploadedDicoms:message:deleteMes'), { type: 'warning', distinguishCancelAndClose: true, - confirmButtonText: 'Ok', - cancelButtonText: 'Cancel' + }) .then(() => { this.loading = true @@ -175,7 +174,7 @@ export default { this.loading = false if (res.IsSuccess) { this.list.splice(this.list.findIndex(item => item.Id === row.Id), 1) - this.$message.success('Deleted successfully!') + this.$message.success(this.$t('common:message:deletedSuccessfully')) } }).catch(() => { this.loading = false }) }) diff --git a/src/views/dictionary/template/components/CriterionDictionary.vue b/src/views/dictionary/template/components/CriterionDictionary.vue index 42b35fbd..a2cbdc69 100644 --- a/src/views/dictionary/template/components/CriterionDictionary.vue +++ b/src/views/dictionary/template/components/CriterionDictionary.vue @@ -7,6 +7,7 @@ @@ -59,12 +60,13 @@ show-overflow-tooltip > diff --git a/src/views/resumeInfo/components/Employment.vue b/src/views/resumeInfo/components/Employment.vue index 380098a6..ec46e5d9 100644 --- a/src/views/resumeInfo/components/Employment.vue +++ b/src/views/resumeInfo/components/Employment.vue @@ -14,27 +14,27 @@ {{ employment.RankCN }} - - - {{ employment.Physician }} - {{ employment.PhysicianCN }} - - + + + + + + {{ employment.Position }} {{ employment.PositionCN }} - - - {{ employment.HospitalName }} {{ employment.HospitalNameCN }} + + + {{ employment.UniversityAffiliated }} diff --git a/src/views/resumeInfo/index.vue b/src/views/resumeInfo/index.vue index 9d5dfda4..e5a5dad2 100644 --- a/src/views/resumeInfo/index.vue +++ b/src/views/resumeInfo/index.vue @@ -189,8 +189,8 @@ export default { this.pageLoading = false if (res.IsSuccess) { if (res.Result) { - this.holiday = res.Result.InHoliday ? 'Yes' : 'No' this.doctorInfo = res.Result + this.holiday = res.Result.InHoliday ? 'Yes' : 'No' !this.doctorInfo.ResearchPublicationView ? this.doctorInfo.ResearchPublicationView = {} : ''; this.title = `${this.doctorInfo.BasicInfoView.FirstName} ${this.doctorInfo.BasicInfoView.LastName}${this.$t('resumeInfo:title:Details')}` this.htmlTitle = this.title diff --git a/src/views/reviewers/ReviewersResearch.vue b/src/views/reviewers/ReviewersResearch.vue index 84b8f39d..cf78879a 100644 --- a/src/views/reviewers/ReviewersResearch.vue +++ b/src/views/reviewers/ReviewersResearch.vue @@ -3,7 +3,8 @@

- 独立阅片人信息填写 + + {{$t("trials:researchForm:form:title")}}

{ @@ -149,9 +151,14 @@ export default { isHaveSiteSurveyRecord: false } }, + created(){ + this.$i18n.locale = this.$route.query.lang + this.setLanguage(this.$route.query.lang) + }, mounted() { }, methods: { + ...mapMutations({ setLanguage: 'lang/setLanguage' }), // 提交 onSubmit() { this.$refs['resetForm'].validate(valid => { @@ -176,7 +183,7 @@ export default { store.dispatch('user/setTree', menuTree.Result) store.dispatch('user/setPermissions', permissions.Result) // this.$router.push({ path: `/researchForm?trialId=${this.trialId}&trialSiteSurveyId=${res.Result.TrialSiteSurveyId}` }) - this.$router.push({path: `/ReviewersResearchForm?Id=${res.Result.DoctorId ? res.Result.DoctorId : ''}&tabActive=BasicInfo&ReviewStatus=${res.Result.ReviewStatus}`}) + this.$router.push({path: `/ReviewersResearchForm?Id=${res.Result.DoctorId ? res.Result.DoctorId : ''}&tabActive=BasicInfo&ReviewStatus=${res.Result.ReviewStatus}&lang=${this.$route.query.lang}`}) }).catch(() => { this.btnLoading = false this.sendDisabled = false diff --git a/src/views/reviewers/ReviewersResearchForm.vue b/src/views/reviewers/ReviewersResearchForm.vue index ae9b9908..e4d9d8ae 100644 --- a/src/views/reviewers/ReviewersResearchForm.vue +++ b/src/views/reviewers/ReviewersResearchForm.vue @@ -1,32 +1,33 @@ - + - + - + - + - + - + + + diff --git a/src/views/system/user/components/UserInfo.vue b/src/views/system/user/components/UserInfo.vue index 37105f03..5769d106 100644 --- a/src/views/system/user/components/UserInfo.vue +++ b/src/views/system/user/components/UserInfo.vue @@ -9,41 +9,43 @@ >
- Basic Information + {{ $t('system:userlist:title:Information') }}
- + - + - + - + - + Male Female - + - + - - + + - - + + + {{ item.label }} + - +
- Affiliation + {{ $t('system:userlist:title:Affiliation') }}
- Internal - External + {{ $t('system:userlist:title:Internal') }} + {{ $t('system:userlist:title:External') }} - + - - + - +
@@ -106,11 +107,29 @@ export default { } }, methods: { + updateQueryParam(param, newValue,wurl) { + // 获取当前URL + let url = wurl || window.location.href; + + // 正则表达式匹配参数 + let regex = new RegExp('([?&])' + param + '=.*?(&|$)'); + let separator = url.indexOf('?') !== -1 ? '&' : '?'; + + // 如果参数存在,替换它,如果不存在,添加它 + if (regex.test(url)) { + return url.replace(regex, '$1' + param + '=' + newValue + '$2'); + } else { + return url + separator + param + '=' + newValue; + } + }, handleSave() { this.$refs.userForm.validate(valid => { if (valid) { this.isDisabled = true const selectedUserType = this.userTypeOptions.filter(item => item.Id === this.user.UserTypeId) + let newUrl = this.updateQueryParam('userName', this.user.UserName) + newUrl = this.updateQueryParam('email', this.user.EMail, newUrl) + window.history.pushState({ path: newUrl }, '', newUrl) if (selectedUserType.length > 0) { this.user.UserTypeEnum = selectedUserType[0].UserTypeEnum } diff --git a/src/views/system/user/edit/index.vue b/src/views/system/user/edit/index.vue index c37fa343..2be70da6 100644 --- a/src/views/system/user/edit/index.vue +++ b/src/views/system/user/edit/index.vue @@ -1,40 +1,40 @@ - - + + diff --git a/src/views/system/user/list/index.vue b/src/views/system/user/list/index.vue index 383a2c29..f347279f 100644 --- a/src/views/system/user/list/index.vue +++ b/src/views/system/user/list/index.vue @@ -9,13 +9,14 @@ :search-handle="searchHandle" @search="handleSearch" @reset="handleReset" + @new="handleAddUser" /> - New + + + + + +
role.RoleName).join(',') }} diff --git a/src/views/trials/trials-panel/attachments/enrollment/index.vue b/src/views/trials/trials-panel/attachments/enrollment/index.vue index f37ddf25..2bbeacbd 100644 --- a/src/views/trials/trials-panel/attachments/enrollment/index.vue +++ b/src/views/trials/trials-panel/attachments/enrollment/index.vue @@ -8,15 +8,15 @@
- + {{$fd('Indication', trialInfo.IndicationEnum)}}{{trialInfo.Indication ? '-' + trialInfo.Indication : '' }}
- + {{ (trialInfo.CriterionList && trialInfo.CriterionList.length>0)? trialInfo.CriterionList.join(', '): '' }}
- + {{ $fd('ReadingMethod', trialInfo.ReadingType) }}-->
- + {{ trialInfo.TotalReviewers }}
- - {{ trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).toString() }} + + {{ trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).join(', ') }}
diff --git a/src/views/trials/trials-panel/attachments/reReading-tracking/index.vue b/src/views/trials/trials-panel/attachments/reReading-tracking/index.vue index 03802439..5db7c2b5 100644 --- a/src/views/trials/trials-panel/attachments/reReading-tracking/index.vue +++ b/src/views/trials/trials-panel/attachments/reReading-tracking/index.vue @@ -763,6 +763,7 @@ export default { this.getList() }, handleReset() { + this.timeList = null this.searchData = searchDataDefault() this.getList() }, 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 2c002819..66e23a16 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 @@ - + @@ -39,7 +41,6 @@ - -
@@ -173,6 +161,17 @@
{{ $t('trials:reading:button:reset') }}
+ +
+
+ +
+
{{ $t('trials:lugano:button:record') }}
+
+
@@ -330,6 +329,14 @@ > + + +
+ diff --git a/src/views/trials/trials-panel/reading/mim-medical-audit/components/GlobalReview.vue b/src/views/trials/trials-panel/reading/mim-medical-audit/components/GlobalReview.vue index 7bccdc62..38cb03f7 100644 --- a/src/views/trials/trials-panel/reading/mim-medical-audit/components/GlobalReview.vue +++ b/src/views/trials/trials-panel/reading/mim-medical-audit/components/GlobalReview.vue @@ -1,6 +1,6 @@