diff --git a/public/screen.pdf b/public/screen.pdf new file mode 100644 index 0000000..64ab3b5 Binary files /dev/null and b/public/screen.pdf differ diff --git a/src/utils/splitScreen.js b/src/utils/splitScreen.js index 6c2a767..9c07127 100644 --- a/src/utils/splitScreen.js +++ b/src/utils/splitScreen.js @@ -8,7 +8,9 @@ async function getPermission() { return true } else if (permission.state === "prompt") { // 询问是否授权 // 请求授权 - navigator.permissions.request({ name: 'window-management' }) + if (navigator.permissions.request) { + navigator.permissions.request({ name: 'window-management' }) + } return false } else if (permission.state === "denied") { // 权限被拒绝 @@ -50,7 +52,7 @@ function getScreen() { }) } -export async function openWindow(url, name) { +export async function openWindow(url, name, Skip = false) { // 判断浏览器是否兼容 // 高版本的谷歌,edge不支持跨屏,需要降低浏览器版本86.0版 if (!window.getScreens && !window.getScreenDetails) { @@ -59,7 +61,10 @@ export async function openWindow(url, name) { } let permission = await getPermission() if (!permission) { - alert('使用多屏功能请先进行授权') + // alert('使用多屏功能请先进行授权') + if (Skip) { + return window.open(url, name); + } return false } let multiScreen = await getScreen() diff --git a/src/views/trials/trials-myinfo/index.vue b/src/views/trials/trials-myinfo/index.vue index 000ecc5..83a437f 100644 --- a/src/views/trials/trials-myinfo/index.vue +++ b/src/views/trials/trials-myinfo/index.vue @@ -1,11 +1,6 @@ @@ -56,7 +42,7 @@ export default { }; }, computed: { - ...mapGetters(["userId", "userName"]), + ...mapGetters(["identityUserId", "userName"]), }, mounted() { this.getUserInfo(); @@ -86,7 +72,7 @@ export default { spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.07)", }); - getUser(this.userId) + getUser() .then(async (res) => { this.user = res.Result; /* eslint-disable */ @@ -116,6 +102,7 @@ export default { display: flex; flex-direction: row; justify-content: space-around; + .contentBox { width: calc(100% - 220px); background-color: #fff; @@ -124,18 +111,21 @@ export default { overflow: auto; // padding-bottom: 50px; } + .trial-myinfo-head { position: absolute; top: 40px; left: 20px; font-size: 14px; } + .trial-myinfo-left { overflow: auto; background: #fff; // width: calc(50% - 9px); // margin: 6px 0; height: 100%; + // padding-bottom: 50px; .trial-myinfo-left-top { width: 70%; @@ -143,6 +133,7 @@ export default { position: relative; // margin: 0 auto; margin-bottom: 10px; + .trial-myinfo-body { width: 160px; height: 160px; @@ -152,6 +143,7 @@ export default { justify-content: center; align-items: center; margin-left: 30px; + div { color: #fff; font-size: 30px; @@ -159,36 +151,42 @@ export default { } } } + .saveBtn { position: absolute; right: -10px; top: 2px; transform: translateX(100%); } + .trial-info-btn { position: absolute; bottom: -60px; left: 10px; min-width: 97px; } + .trial-myinfo-left-bottom { width: 40%; padding-top: 100px; position: relative; // margin: 0 auto; } + .trial-myinfo-right { overflow: auto; background: #fff; // width: calc(50% - 9px); // margin: 6px 0; height: 100%; + .sendCode { position: absolute; right: -10px; top: 50%; transform: translate(100%, -50%); } + .trial-myinfo-right-box { width: 40%; padding-top: 100px; diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Others.vue b/src/views/trials/trials-panel/reading/dicoms/components/Others.vue index d239f40..c2dd77d 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Others.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Others.vue @@ -15,7 +15,7 @@
{{ $t("trials:reading:tip:MultiScreen") }}{{ $t("trials:reading:tip:openFile") }}
diff --git a/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue b/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue index 903bad9..0563779 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue @@ -724,6 +724,14 @@ export default { } if (IsDoubleScreen) { this.openWindow = await openWindow(routeData.href) + if (!this.openWindow) { + let html = `
${this.$t("trials:reading:tip:MultiScreen2")}${this.$t("trials:reading:tip:openFile")}
` + let confirm = await this.$confirm(html, '', { dangerouslyUseHTMLString: true }) + if (!confirm) return false + this.openWindow = await openWindow(routeData.href, '', true) + } } else { this.openWindow = window.open(routeData.href, "_blank"); } diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeReportPage.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeReportPage.vue index 0316c78..7a31b88 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeReportPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeReportPage.vue @@ -780,6 +780,14 @@ export default { } if (IsDoubleScreen) { this.openWindow = await openWindow(routeData.href) + if (!this.openWindow) { + let html = `
${this.$t("trials:reading:tip:MultiScreen2")}${this.$t("trials:reading:tip:openFile")}
` + let confirm = await this.$confirm(html, '', { dangerouslyUseHTMLString: true }) + if (!confirm) return false + this.openWindow = await openWindow(routeData.href, '', true) + } } else { this.openWindow = window.open(routeData.href, "_blank"); } diff --git a/src/views/trials/trials-panel/reading/reading-task/components/TaskList.vue b/src/views/trials/trials-panel/reading/reading-task/components/TaskList.vue index 3c9f209..4d51244 100644 --- a/src/views/trials/trials-panel/reading/reading-task/components/TaskList.vue +++ b/src/views/trials/trials-panel/reading/reading-task/components/TaskList.vue @@ -231,6 +231,14 @@ export default { } if (IsDoubleScreen) { this.openWindow = await openWindow(routeData.href) + if (!this.openWindow) { + let html = `
${this.$t("trials:reading:tip:MultiScreen2")}${this.$t("trials:reading:tip:openFile")}
` + let confirm = await this.$confirm(html, '', { dangerouslyUseHTMLString: true }) + if (!confirm) return false + this.openWindow = await openWindow(routeData.href, '', true) + } } else { this.openWindow = window.open(routeData.href, "_blank"); } diff --git a/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue b/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue index 2783d78..532e8bb 100644 --- a/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue +++ b/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue @@ -193,8 +193,8 @@ ) " @click="handleStatus(scope.row)" /> - + @@ -327,6 +327,7 @@ import StaffForm from './staffForm' import StaffExternalForm from './staffExternalForm' import BaseModel from '@/components/BaseModel' import moment from 'moment' +import { getHospital } from "@/api/hospital.js"; const getListQueryDefault = () => { return { UserRealName: '', @@ -393,14 +394,28 @@ export default { title: this.$t('trials:staff:dialogTitle:role'), width: '800px', }, + + IsCanConnectInternet: false } }, mounted() { this.trialId = this.$route.query.trialId this.getUserType() this.getList() + this.getInfo() }, methods: { + // 获取医院信息 + async getInfo() { + try { + let res = await getHospital(); + if (res.IsSuccess) { + this.IsCanConnectInternet = res.Result.IsCanConnectInternet; + } + } catch (err) { + console.log(err); + } + }, // 发送邮件 async handleSendEmail(row) { try {